Склеить 2 изображения. PHP.

Egi[s]
На сайте с 08.04.2007
Offline
244
6748

Есть картинка 100х200, надо приклеить к низу картинку размерами 15x1000, что бы получилась картинка размерами 100х215 и нижняя была выравнена по левому краю.

Пример прикрепил.

В какую сторону шагать, какие команды помогут?

jpg 1.jpg
jpg 2.jpg
jpg 3.jpg
AlikZP
На сайте с 22.11.2009
Offline
107
#1

Пример почти под вашу задачу описан тут: http://www.php.net/manual/en/image.examples-watermark.php

Описание функций для работы и изображениями тут http://php.su/functions/?cat=image

Website CMS: быстрая, удобная, недорогая! Вечная лицензия за 45$ (/ru/forum/524503) Яся - быстрый поиск фото для товаров. OpenCart/ocStore. Дополнение. (/ru/forum/665287) Грамотная верстка ваших макетов (/ru/forum/comment/8853216)
K8
На сайте с 29.04.2010
Offline
0
#2
Качественно и недорого разрабатываю PHP-приложения (/ru/forum/493030)
Egi[s]
На сайте с 08.04.2007
Offline
244
#3

ммм, тут просто нанесение ватермарки описано, а мне нужно еще увеличить размер черной области снизу картинки, так как она обрезана была... 15 пикселов снизу нужно черной области добавить - как это реализовать?

AlikZP
На сайте с 22.11.2009
Offline
107
#4

	function watermark($source, $watermark, $dest) {

$source_size = getimagesize($source);
$watermark_size = getimagesize($watermark);

switch ($source_size[2]) {
case 1: $sImg = @imagecreatefromgif ($source); break;
case 2: $sImg = @imagecreatefromjpeg ($source); break;
case 2: $sImg = @imagecreatefrompng ($source); break;
}

switch ($watermark_size[2]) {
case 1: $wImg = @imagecreatefromgif ($watermark); break;
case 2: $wImg = @imagecreatefromjpeg ($watermark); break;
case 2: $wImg = @imagecreatefrompng ($watermark); break;
}

$im = imagecreatetruecolor($source_size[0], $source_size[1] + $watermark_size[1]);
imagecolorallocate ($im, 0, 0, 0);
imagecopy($im, $sImg, 0, 0, 0, 0, $source_size[0], $source_size[1]);
imagecopy($im, $wImg, 0, $source_size[1]+1, 0, 0, $watermark_size[0], $watermark_size[1]);


switch ($source_size[2]) {
case 1: $sImg = @imagegif($im, $dest.'.gif'); break;
case 2: $sImg = @imagejpeg($im, $dest.'.jpg'); break;
case 3: $sImg = @imagepng($im, $dest.'.png'); break;
}
}

$source - Имя входящего файла ( демотиватор )

$watermark - Имя файла с вотермарком

$dest - Имя файла результирующего файла. Полный путь к файлу без расширения.

Обрабатываются GIF, PNG и JPEG.

Формат файла на выходе такой же, как и формат входящего файла.

Пример вызова функции:

watermark('source.jpg', 'watermark.jpg', 'images/result');

После работы будет создан файл images/result.jpg

Egi[s]
На сайте с 08.04.2007
Offline
244
#5

А почему он чернобелый получается на выходе? У себя сделал - то же самое, рисунок ЧБ...

AlikZP
На сайте с 22.11.2009
Offline
107
#6
'Egi[s:
;6824899']А почему он чернобелый получается на выходе? У себя сделал - то же самое, рисунок ЧБ...

О, а я даже и не заметил :)

Поправил код.

Egi[s]
На сайте с 08.04.2007
Offline
244
#7

Супер! Спасибо большое! Теперь спокойно базу обработаю наконец-то уже :)

AlikZP
На сайте с 22.11.2009
Offline
107
#8

Пожалста.

Я не проверял, но 99.9% работает на PNG и GIF.

Так же можно комбинировать - PNG исходник и JPEG watermark.

Папка, куда сохраняется итоговый файл, должна иметь права на запись.

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