将图像合并在一起并没有真正发挥作用

时间:2012-07-18 07:10:47

标签: php gd

由于某种原因,我似乎无法合并2张图片,我不知道我做错了什么。这对我来说还是有点新鲜。这是我的代码:

$source = 'http://localhost:8888/develop/trunk/develop/wp-content/uploads/2012/07/card01-80x80.jpg';
$im = imagecreatetruecolor(200, 200);
$black = imagecolorallocate($im, 0, 0, 0);
// Make the background transparent
imagecolortransparent($im, $black);
$text_color = imagecolorallocate($im, 255, 255, 255);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagejpeg($im, WP_UPLOADS_PATH . 'post-image-generator/1.jpg');


//merge images
$thumb = imagecreatefromjpeg($source);
$destination = imagecreatefromjpeg(WP_UPLOADS_PATH . 'post-image-generator/1.jpg');


imagecopymerge($destination, $thumb, 0, 0, 0, 0, 0, 0, 100);


imagejpeg($destination, WP_UPLOADS_PATH . 'post-image-generator/1.jpg');

echo "
    <style></style>
    <img src='" . WP_UPLOADS_URL . 'post-image-generator/1.jpg' . "' />
        ";


imagedestroy($thumb);
imagedestroy($destination);
imagedestroy($im);

它生成以下内容:

generated image

但也应包括以下图片:

missing image

感谢任何帮助

1 个答案:

答案 0 :(得分:1)

据我所知,没有实际测试,就是这样:

imagecopymerge($ destination,$ thumb,0,0,0,0, 0,0, 100);

你要复制的区域从$ thumb中的0,0开始,要复制的区域的宽度和高度是0和0.因为源图片是80x80而你想要整个东西被复制在第一张图片的左上角,您需要将其更改为:

imagecopymerge($ destination,$ thumb,0,0,0,0,80,80);

这会将整个80像素的图像复制到$ destination的左上角。