具有黑色背景的png图像上的图像优化

时间:2019-06-08 17:40:55

标签: php image optimization

我有一个刚刚上传的php图像优化脚本,适用于jpg和png,但png图像的问题在于它在png图像上添加了黑色背景,但应保持图像的透明度。我在Google上浏览了一下,发现了一个对其他人有用的解决方案,但不幸的是对我不起作用,下面是我对png函数使用的脚本。认为我已经解决了,我更新了下面的代码

    function optimize_png($file) {
    if(!isset($GLOBALS['pngquality']) || 
    !is_numeric($GLOBALS['pngquality'])) {
    return false;
    }
    if($GLOBALS['pngquality'] > 9 || $GLOBALS['pngquality'] < 0) {
    $GLOBALS['pngquality'] = 9;
    }
    list($w,$h) = @getimagesize($file);
    if(empty($w) || empty($h)) {
    return false;
    }
    $src = imagecreatefrompng($file);
    $tmp = imagecreatetruecolor($w,$h);
    imagealphablending($tmp, false );
    imagesavealpha($tmp, true );
    imagecopyresampled($tmp,$src,0,0,0,0,$w,$h,$w,$h);
    $src = imagepng($tmp,$file,$GLOBALS['pngquality']);
    imagedestroy($tmp);
    return true;
    }

0 个答案:

没有答案