繁体   English   中英

GIF透明背景变为黑色

[英]GIF transparent background turned to black

我有一个调整上传图像大小的脚本。 它适用于PNG和JPG,但使用GIF可以在调整大小的GIF黑色中呈现透明度。

    $src = imagecreatefromgif($file);
    $dst = imagecreatetruecolor($newWidth, $newHeight);
    imagecopyresampled($dst, $src, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); 
    imagegif($dst, $file);

从手册页http://us3.php.net/manual/en/function.imagecopyresampled.php#104028

imagecolortransparent($new, imagecolorallocatealpha($new, 0, 0, 0, 127));
imagealphablending($new, false);
imagesavealpha($new, true);

一张海报使用它来保持透明度。

这里有一个提示...总是在php.net上查看用户评论,因为它们通常非常有助于理解函数的细微差别并提供处理常见任务的提示。

我假设这是一个网页,如果它,你可以只输出具有正确属性的图像标签?

echo "<img src='$file' width='$newWidth' height='$newHeight' />";

您仍然需要在新图像中设置透明度。 以下是取自PHP文档

<?php
// Create a 55x30 image
$im = imagecreatetruecolor(55, 30);
$red = imagecolorallocate($im, 255, 0, 0);
$black = imagecolorallocate($im, 0, 0, 0);

// Make the background transparent
imagecolortransparent($im, $black);
// ^^ This is the command you are missing.

// Draw a red rectangle
imagefilledrectangle($im, 4, 4, 50, 25, $red);

// Save the image
imagepng($im, './imagecolortransparent.png');
imagedestroy($im);
?>

在你的情况,你想使透明的颜色一样的原始transaprency - 我总是做了一个可怕的紫色或东西,将一)坚持像一个突兀在我的图像处理软件,其次,有一个RGB密钥几乎不可能错误地包含在图像中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM