1

由于某种原因,我似乎无法合并 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);

它生成以下内容:

生成的图像

但还应包括以下图像:

丢失图像

任何帮助表示赞赏

4

1 回答 1

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, 100);

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

于 2012-07-18T08:07:04.337 回答