PHP中的图像合并 - GIF和JPG

7
我试图合并两个图片 - 一个GIF图像和一个较小的JPG图像。输出应该是GIF。
问题在于GIF图像的颜色保持正确,但JPG图像的颜色会改变。
GIF图像只有256种颜色(8位),但是否有一种方法可以使合并后的图像成为真彩色资源,以便稍后可以将其转换为8位GIF进行输出?
问题已解决。
我更新了代码。这里是解决方案,它能很好地工作:
<?php

header('Content-Type: image/gif');

$gif_address = 'file.gif';
$jpg_address = 'file.jpg';

$image1 = imagecreatefromgif($gif_address);
$image2 = imagecreatefromjpeg($jpg_address);

$merged_image = imagecreatetruecolor(800, 800);
imagecopymerge($merged_image, $image1, 0, 0, 0, 0, 800, 800, 100);
imagecopymerge($merged_image, $image2, 0, 0, 0, 0, 500, 500, 100);

imagegif($merged_image);

imagedestroy($image1);
imagedestroy($image2);
imagedestroy($merged_image);

?>
1个回答

6
根据您的解释(一些代码会有所帮助),我猜测您正在将jpeg合并到gif上。我建议最简单的方法是使用imageCreateTrueColor创建所需大小的新图像,然后使用imagecopy将GIF复制到此新图像中。将jpg合并到此图像上,然后在以后的某个时间可以将真彩色图像转换为gif。如果我漏掉了一些东西,您目前正在做什么的示例代码可能会有所帮助。

是的,imageCreateTrueColor 完美地工作了。也许,使用 imagecopy 而不是 imagecopymerge 是个好主意。谢谢! - acoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接