[英]Resize PNG without losing quality and transparency
我必须调整图像大小,因为我们上传了可打印的高分辨率图像,并且预览时人们不需要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也可以。
对于将来有同样问题的人。 我通过停止使用imagegd解决了它,并切换到ImageMagick 。 所有图像仍然是透明的,您可以使用正确的ICC配置文件轻松将cmyk图像转换为sRGB
实际上,不要使PNG更大。 取而代之的是,从所需的PNG分辨率开始,然后根据需要缩小分辨率。 这样一来,您就可以将分辨率保持在PNG上,而在此之后再也不必再搞砸了。 这是最快,最简单,最好的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.