我正在尝试合并两个图像 - 一个 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);
?>
答案 0 :(得分:6)
从你的解释(一些代码会有所帮助),我会冒险猜测你正在将jpeg合并到gif上。我想说最简单的方法是使用 imageCreateTrueColor 创建一个你需要的大小的新图像,然后使用 imagecopy 将GIF复制到这个新图像中。将jpg合并到此,然后在以后您可以将真彩色图像转换为gif。
如果我遗漏了一些你正在做的事情的示例代码可能会有所帮助。