gpt4 book ai didi

php - 调整大小后的 GIF 图像变为黑色

转载 作者:搜寻专家 更新时间:2023-10-31 22:05:00 25 4
gpt4 key购买 nike

我有一个脚本可以调整上传图片的大小。我在一些说明中添加了将 GIF 中的任何透明度转换为白色的说明。它通常工作正常,但在某些情况下,调整大小后的 GIF 完全是黑色的。 (请注意,我将这些图像用于 PDF,所以我不能使用 CSS 来处理这个……)。无论如何,我是 PHP 图像处理方面的新手,所以我不确定如何解决这个问题。

这是两个示例 GIF。第一个工作正常,而第二个更改为黑色。

这是相关的片段:

elseif ($fileType == 'gif') {
$src = imagecreatefromgif($file);
$dst = imagecreatetruecolor($newWidth, $newHeight);
imagecolortransparent($dst, imagecolorallocatealpha($dst, 0, 0, 0, 127));
imagealphablending($dst, false);
imagesavealpha($dst, true);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
imagegif($dst, $file);
}

最佳答案

首先将您的第二张图片转换为 gif 格式。为此,可以使用任何图像处理工具(gimp/photoshop)或在代码片段下方添加前缀:

// Load the JPEG
$jpeg = imagecreatefromjpeg($file);
// Save the image as a GIF
imagegif($jpeg, $file);

在给定的代码片段中,您正在使用 imagecolorallocatealpha($dst, 0, 0, 0, 127) 函数,该函数将在您的图像中添加完全透明度。取而代之的是,尝试使用 imagecolorallocate($dst, 0, 0, 0) 函数或不要在 imagecolortransparent() 函数中使用颜色参数。

关于php - 调整大小后的 GIF 图像变为黑色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20436414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com