Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在不损失质量和透明度的情况下调整PNG大小_Php_Gdlib - Fatal编程技术网

Php 在不损失质量和透明度的情况下调整PNG大小

Php 在不损失质量和透明度的情况下调整PNG大小,php,gdlib,Php,Gdlib,我必须调整图像大小,因为我们上传可打印的高分辨率图像,而预览时人们不需要4000px+的图像。一些图像使用rgb颜色空间eci,另一些图像使用颜色空间srgb。srgb文件没有任何问题,但是eci看起来比以前有点无色。当我上传一个透明的图像时,它不是完全透明的。有什么解决办法吗?当我调整大小和它的png图像,我使用以下额外的功能 private function imagetranstowhite($trans) { // Create a new true color image wi

我必须调整图像大小,因为我们上传可打印的高分辨率图像,而预览时人们不需要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也不错。

实际上,不要使PNG变大。取而代之的是,一开始你需要一个大的PNG分辨率,然后根据需要缩小它。这样你就可以在PNG上保持分辨率,从此以后再也不用乱弄了。这是最快、最简单、最好的解决方案

实际上,不要把PNG弄大。取而代之的是,一开始你需要一个大的PNG分辨率,然后根据需要缩小它。这样你就可以在PNG上保持分辨率,从此以后再也不用乱弄了。这是最快、最简单、最好的解决方案

适用于将来有同样问题的人。我通过停止使用imagegd并切换到。所有图像仍然是透明的,您可以轻松地将cmyk图像转换为具有正确ICC配置文件的sRGB,以供将来有相同问题的人使用。我通过停止使用imagegd并切换到。所有图像仍然是透明的,您可以使用正确的ICC配置文件轻松地将cmyk图像转换为sRGB