2011-10-22 146 views
6

我试图合并两个图像 - 一个GIF图像用较小的JPG图像。输出应该是GIF合并图像PHP - GIF和JPG

问题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); 

?> 

回答

5

从你的解释(某些代码将帮助),我会大胆地猜测你是合并JPEG到GIF。编号说最简单的方法是使用imageCreateTrueColor创建一个您需要的大小的新图像,然后使用imagecopy将GIF复制到此新图像。合并jpg到这个,然后在以后的日子,你可以转换真正的彩色图像为gif。

如果缺少一些你正在做的事情的示例代码可能会有所帮助。

+0

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