Вопрос по пхп и изображению

Kot Matroskin
На сайте с 29.08.2007
Offline
185
816

# подключаем наш класс 'watermark'

include 'api.watermark.php';
$watermark = new watermark();

# создаем объекты-изображения используя исходные файлы
# (main.jpg и watermark.png)
$main_img_obj = imagecreatefromjpeg( $_GET['main'] );
$watermark_img_obj = imagecreatefrompng( $_GET['watermark'] );

# создаем изображение с водяным знаком - значение прозрачности
# альфа-канала водяного знака установим в 66%
$return_img_obj = $watermark->create_watermark( $main_img_obj,
$watermark_img_obj, 66 );

# отобразим наше полученное изображение в браузере -
# но сначала сообщим ему, что это jpeg-файл
header( 'Content-Type: image/jpeg' );
header( 'Content-Disposition: inline; filename=' . $_GET['src'] );
imagejpeg( $return_img_obj, '', 50 );

Короче говоря скрипт берёт имя файла из урла.

В таком виде image.php?main=main.jpg&watermark=watermark.png

Надо чтобы ссылка была не такого вида, а просто image.php?main=main.jpg, а адрес к watermark был прописан в самом коде. Пытался сменить переменную $watermark_img_obj на имя файла но не фурычит.

Не подскажите?

Спасибо.

Я пользовался 11 разными хостингами. Есть только один ЛУЧШИЙ: ★ он тут ★ (https://goo.gl/R6v3zH) Пишите в ЛС за скидкой. VPS тоже в наличие ! Рекомендую.
S
На сайте с 03.03.2008
Offline
91
#1

$watermark_img_obj = imagecreatefrompng( $_GET['watermark'] );

заменить на

$watermark_img_obj = imagecreatefrompng( 'watermark.png' );

Kot Matroskin
На сайте с 29.08.2007
Offline
185
#2

Странно вроде пробовал... Спасибо, работает. :)

тогда другой вопрос.

Сам скрипт вот www.codenet.ru/webmast/php/watermark/

Работает только с jpg а можно ли заставить работать и с gif ?

AutoBlogger
На сайте с 05.10.2011
Offline
128
#3

Как-то так:

# подключаем наш класс 'watermark'
include 'api.watermark.php';
$watermark = new watermark();

# создаем объекты-изображения используя исходные файлы
# (main.gif и watermark.png)
$main_img_gif = imagecreatefromgif( $_GET['main'] );
$watermark_img_obj = imagecreatefrompng( 'watermark.png' );

# создаем изображение с водяным знаком - значение прозрачности
# альфа-канала водяного знака установим в 66%
$return_img_gif = $watermark->create_watermark( $main_img_gif, $watermark_img_obj, 66 );

# отобразим наше полученное изображение в браузере -
# но сначала сообщим ему, что это jpeg-файл
header( 'Content-Type: image/jpeg' );
header( 'Content-Disposition: inline; filename=' . $_GET['src'] );
imagegif( $return_img_gif, '', 50 );
🪄 www.cyberseo.net - плагин для создания автоблогов под WordPress, с поддержкой OpenAI GPT, Anthropic Claude, Google Gemini, Llama, Mistral, Midjourney, FLUX, Stable Diffusion | 📣 Импорт RSS / XML / JSON/ CSV / HTML
Kot Matroskin
На сайте с 29.08.2007
Offline
185
#4

AutoBlogger неа, во первых не верно обрабатывает картинку, она синяя вылазить и вообще нечто странное, ну и надо чтоб было И с jpg И с gif

RO
На сайте с 13.07.2009
Offline
88
#5

# подключаем наш класс 'watermark'
include 'api.watermark.php';
$watermark = new watermark();

# создаем объекты-изображения используя исходные файлы
# (main.jpg и watermark.png)
$ext=array('gif','jpg','png','jpeg');
$extf=pathinfo($_GET['main'],PATHINFO_EXTENSION);
if(in_array($extf,$ext))
{
$main_img_obj = imagecreatefrom$ext[$extf]( $_GET['main'] );
$watermark_img_obj = imagecreatefrompng( $_GET['watermark'] );

# создаем изображение с водяным знаком - значение прозрачности
# альфа-канала водяного знака установим в 66%
$return_img_obj = $watermark->create_watermark( $main_img_obj,
$watermark_img_obj, 66 );

# отобразим наше полученное изображение в браузере -
# но сначала сообщим ему, что это jpeg-файл
header( 'Content-Type: image/'.$ext[$extf] );
header( 'Content-Disposition: inline; filename=' . $_GET['src'] );
imagejpeg( $return_img_obj, '', 50 );
}
else
die('lol');

с ждпегом непонятки будут точно.

AutoBlogger
На сайте с 05.10.2011
Offline
128
#6
Kot Matroskin:
AutoBlogger неа, во первых не верно обрабатывает картинку, она синяя вылазить и вообще нечто странное, ну и надо чтоб было И с jpg И с gif

Вероятно всего из-за этого:

header( 'Content-Type: image/jpeg' );

Надо jpeg на gif заменить, я пропустил этот момент. Хотя, если честно, работоспособность не проверял - изменения на глазок вносил.

Kot Matroskin
На сайте с 29.08.2007
Offline
185
#7

RedOK, к сожалению не работает вообще

AutoBlogger, мне надо на все форматы ..

gormarket
На сайте с 29.12.2010
Offline
47
#8

Kot Matroskin, замените в своем коде три строчки для jpg кускам кода для всех форматов:


$t=getimagesize ($_GET['main']) or die('unknown type of image');
switch ($t[2]) {
case 1:
$type='gif';
$main_img_obj=imagecreatefromgif($file_foto);
break;
case 2:
$type='jpeg';
$main_img_obj=imagecreatefromjpeg($file_foto);
break;
case 3:
$type='png';
$main_img_obj=imagecreatefrompng($file_foto);
break;
}

header("content-type: image/".$type);

switch ($type]) {
case 'gif':
imagegif( $main_img_obj );
break;
case 'png':
imagepng( $main_img_obj );
break;
default:
imagejpeg( $main_img_obj );
}
Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий