如何在PHP中将图像的背景颜色从黑色更改为透明?

时间:2017-08-10 02:45:13

标签: php image

如何使用php调整png和gif图像的大小并存储透明背景?

这是我的代码

您的图像会将图像调整为200x200像素并爬到PIE目录。这是一个很好的工作。但是当与png或gif图像(透明bg)一起使用时。它会将bg变为黑色。在调整图像大小后,如何制作透明的bg?

原始

http://imgur.com/a/8FicX

复制

http://imgur.com/a/7yQo8

include 'compressImage.php';
    <?php
    $widthArray = array(200);
    foreach($widthArray as $newwidth)
    {                       
       compressImage($ext,$tmp,$path,$userID.$actual_image_name,$newwidth);
    }
    ?>

compressImage.php:

<?php
//Compress Image 
function compressImage($ext,$uploadedfile,$path,$actual_image_name,$newwidth)
{
    if($ext=="jpg" || $ext=="jpeg" )
    {
    $src = imagecreatefromjpeg($uploadedfile);
    }
    else if($ext=="png")
    {
    $src = imagecreatefrompng($uploadedfile);
    }
    else if($ext=="gif")
    {
    $src = imagecreatefromgif($uploadedfile);
    }
    else
    {
    $src = imagecreatefrombmp($uploadedfile);
    }

    list($width,$height)=getimagesize($uploadedfile);
    $newheight=($height/$width)*$newwidth;
    $tmp=imagecreatetruecolor($newwidth,$newheight);
    imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
    $filename = $path.$newwidth.'_'.$actual_image_name;
    imagejpeg($tmp,$filename,100);
    imagedestroy($tmp);
    return $filename;
}
?>

1 个答案:

答案 0 :(得分:0)

为了保持透明度,您必须使用允许透明度的图像格式。见imagepng(http://php.net/manual/de/function.imagepng.php)。