Добавление одного изображения внизу другого в PHP - PullRequest
2 голосов
/ 28 ноября 2010

Я хотел бы добавить одно изображение внизу другого в php

У меня есть это, чтобы загрузить изображения:

//load top
$top = @imagecreatefrompng($templateTop);
//load bottom
$bottom = @imagecreatefrompng($templateBottom);

Теперь я хотел бы добавить ихк одному изображению и отобразите верх и низ вместе.

Как я могу это сделать?

Спасибо!

Ответы [ 3 ]

17 голосов
/ 28 ноября 2010

Использование imagecopy :

$top_file = 'image1.png';
$bottom_file = 'image2.png';

$top = imagecreatefrompng($top_file);
$bottom = imagecreatefrompng($bottom_file);

// get current width/height
list($top_width, $top_height) = getimagesize($top_file);
list($bottom_width, $bottom_height) = getimagesize($bottom_file);

// compute new width/height
$new_width = ($top_width > $bottom_width) ? $top_width : $bottom_width;
$new_height = $top_height + $bottom_height;

// create new image and merge
$new = imagecreate($new_width, $new_height);
imagecopy($new, $top, 0, 0, 0, 0, $top_width, $top_height);
imagecopy($new, $bottom, 0, $top_height+1, 0, 0, $bottom_width, $bottom_height);

// save to file
imagepng($new, 'merged_image.png');
1 голос
/ 28 ноября 2010

Для достижения этого вам необходимо а) Объединить изображение и сохранить результат в файле б) создать подходящий тег, чтобы указать на него. в) Избегайте повторного использования этого имени, пока этот человек не ушел.

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

Если вы часто хотите отображать два изображения одно под другим, сделайте это, используя подходящий html, и позвольте браузеру сделать это.

например. Поместите изображения в

<div><div><img.../></div><div><img .../></div></div> 

, который вы генерируете с помощью php обычным способом. (Что проще, чем заставить теги появляться здесь :)

0 голосов
/ 30 декабря 2014
$photo_to_paste = "photo_to_paste.png";
$white_image = "white_image.png";

$im = imagecreatefrompng($white_image);
$im2 = imagecreatefrompng($photo_to_paste);


// Place "photo_to_paste.png" on "white_image.png"
imagecopy($im, $im2, 20, 10, 0, 0, imagesx($im2), imagesy($im2));

// Save output image.
imagepng($im, "output.png", 0);
...