4

我使用 imagemagick 从我网站上的图像创建缩略图,使用如下所示的转换:convert -size 220x220 %s -resize 220 -profile '*' %s", $image, $thumb这在很长一段时间内都非常有效。已经处理了数千张图像,所有缩略图看起来都很棒......除了一个。由于某种原因,这张图片产生了一个非常难看的缩略图,我不知道为什么。

原图:http: //i.imgur.com/fCbAN.jpg

生成的缩略图:http: //i.imgur.com/MdLCs.jpg

有没有人知道为什么我的转换代码会发生这种情况?

4

1 回答 1

5

缩略图以非常低的质量保存(大约 10-15、99 接近无损)。我认为问题是,“为什么会发生这种情况”。

我可以想到一些原因,但是您必须进行实验。我假设您发布的图像是真实图像(我的意思是,不是将 PNG 转换为 JPG 的副本),并且命令行是完整的并描述了完整的图像工作流程。

  • 您的 ImageMagick 设置尝试保持估计的图像质量。您没有明确设置质量(例如-quality 75),因此缩略图获得与源图像相同的量化器设置。假设源具有低量化器,但由于高频分量而看不到它(由于扫描,图像“嘈杂”)。重新采样时,背景会失去其噪声并变成平滑的渐变,而源中不存在这种渐变。平滑的渐变对低量化器来说是地狱。尝试明确设置质量因子(40 到 99,40 压缩更好但更粗,99 质量非常高但文件更大)。

  • 重采样器和扫描仪在获取的图像中创建的莫尔图案之间存在某种干扰。这不太可能,因为我看到大约 8 个像素的“波长”并不少见,我也不认为在您获得的这么多图像中,没有一个具有与该图像大致相同的大小和纵横比;在这种情况下应该触发相同的行为。你说它没有发生,所以如果这个图像在大小、纵横比或来源方面并不少见(例如,在批次中使用 Scan-o-matic 600 扫描仪扫描的极少数图像之一),那么这种情况就变成了不太可能。但如果它是正确的,那么在调整大小之前添加一个高斯模糊,它应该可以解决问题:例如-blur 2x2.

  • 文件名中有错误的 juju,由于某种原因,这让 ImageMagick 包装器解释了“将量化器设置为其最糟糕的值”的命令。真的不太可能(如果解释器将文件名的一部分解释为选项,它不应该将其解释为文件名,并且文件名的其余部分不再是真正的文件名;导致“找不到文件”错误,我们不要观察。同样,如果原始文件名类似于“--progressive-swedish-music.jpg”,请尝试在缩略图之前重命名它

无论如何,我把钱花在了选项#1上。

您可以尝试的另一个测试是从 ImageMagick(命令行)而不是 PHP 运行相同的命令。

于 2012-09-19T22:37:51.943 回答