调整PNG大小而不会降低质量和透明度

时间:2015-02-05 13:23:10

标签: php gdlib

我必须调整图像大小,导致我们上传可打印的高分辨率图像,并且对于预览,人们不需要4000px +图像。一些图像使用rgb颜色空间“eci”和其他使用颜色空间srgb。 srgb文件没有任何问题,但eci看起来比以前有点无色。当我上传透明图像时,它不完美透明。有什么解决方案吗?当我调整大小和它的png图像时,我使用以下额外功能。

private function imagetranstowhite($trans) {
    // Create a new true color image with the same size
    $w = imagesx($trans);
    $h = imagesy($trans);
    $white = imagecreatetruecolor($w, $h);

    // Fill the new image with white background
    $bg = imagecolorallocate($white, 255, 255, 255);
    imagefill($white, 0, 0, $bg);

    // Copy original transparent image onto the new image
    imagecopy($white, $trans, 0, 0, 0, 0, $w, $h);

    return $white;
}

有没有人有解决方案? Imagemagick而不是gdlib也很好。

1 个答案:

答案 0 :(得分:-2)

不要让PNG变得更大。相反,从你需要的PNG分辨率开始,然后根据需要进行虚拟缩小。这样你就可以将分辨率保留在PNG上,并且在此之后再也不必弄乱它。它是最快,最简单,最好的解决方案。