PHP GD库,将2个图像并排转换为1个

时间:2014-09-03 04:07:32

标签: php image gd

我想拍摄两张图片并将它们并排转换(不重叠)。我想要做的事情的一个例子是像前后图片(两个图像将具有相同的高度和不同的宽度)。任何关于如何使用PHP GD图像库完成的示例代码都将非常感激。谢谢!

1 个答案:

答案 0 :(得分:8)

<?php

$img1_path = 'images_1.png';
$img2_path = 'images_2.png';

list($img1_width, $img1_height) = getimagesize($img1_path);
list($img2_width, $img2_height) = getimagesize($img2_path);

$merged_width  = $img1_width + $img2_width;
//get highest
$merged_height = $img1_height > $img2_height ? $img1_height : $img2_height;

$merged_image = imagecreatetruecolor($merged_width, $merged_height);

imagealphablending($merged_image, false);
imagesavealpha($merged_image, true);

$img1 = imagecreatefrompng($img1_path);
$img2 = imagecreatefrompng($img2_path);

imagecopy($merged_image, $img1, 0, 0, 0, 0, $img1_width, $img1_height);
//place at right side of $img1
imagecopy($merged_image, $img2, $img1_width, 0, 0, 0, $img2_width, $img2_height);

//save file or output to broswer
$SAVE_AS_FILE = TRUE;
if( $SAVE_AS_FILE ){
    $save_path = "your target path";
    imagepng($merged_image,$save_path);
}else{
    header('Content-Type: image/png');
    imagepng($merged_image);
}

//release memory
imagedestroy($merged_image);

?>

试试吧