【发布时间】:2013-12-10 03:27:11
【问题描述】:
我正在尝试使用 GD 图像库和 perl 调整图像大小,但是当它调整大小时,图像的质量与原始上传的图像不同..你们有什么建议吗?
下面是我的代码
my $dest_w = $width;
my $dest_h = $width * ($h / $w);
my $dest = GD::Image->new($dest_w, $dest_h, 1);
$dest->copyResampled($src, 0, 0, 0, 0, $dest_w, $dest_h, $w, $h);
open OUT, ">$target" or die "Could not save to $target";
binmode OUT;
print OUT $img->jpeg($quality);
close OUT;
我的代码有什么问题吗?谢谢建议
注意:我上传了 .png 图片。即使上传.jpeg图片,图片质量也会下降
【问题讨论】:
-
您正在对 JPEG 进行无操作调整大小。是的,这会导致质量下降,因为它是 JPEG。
-
嗨,Charles,我应该如何处理我的代码?感谢您的建议
-
将其保存为无损文件?
-
您的来源图像类型是什么?如果它是基于调色板的图像,结果会比它是真彩色图像更差。您应该将 GD 设置为默认为 trueColor 图像。
-
我尝试了 .png 和 .jpeg 图像,都给了我相同的结果(图像质量差)..