【问题标题】:Merge images in PHP - GIF and JPG在 PHP 中合并图像 - GIF 和 JPG
【发布时间】:2011-12-13 08:02:27
【问题描述】:

我正在尝试合并 两个图像 - 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);

?>

【问题讨论】:

    标签: php gd gif jpeg


    【解决方案1】:

    根据您的解释(一些代码会有所帮助),我会冒险猜测您正在将 jpeg 合并到 gif 上。我说最简单的方法是使用 imageCreateTrueColor 创建一个您需要大小的新图像,然后使用 imagecopy 将 GIF 复制到这个新图像中。将 jpg 合并到此,然后在以后您可以将真彩色图像转换为 gif。

    如果我遗漏了一些你当前正在做的示例代码可能会有所帮助。

    【讨论】:

    • 是的 imageCreateTrueColor 完美运行。也许,使用 imagecopy 而不是 imagecopymerge 是个好主意。谢谢!
    猜你喜欢
    • 2010-11-17
    • 2012-01-22
    • 2012-01-24
    • 2019-04-26
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 2011-03-21
    • 2010-10-19
    相关资源
    最近更新 更多