Jos*_*ain 4 php imagemagick imagemagick-convert
我使用imagemagick从我的网站上的图像创建缩略图使用如此转换:convert -size 220x220 %s -resize 220 -profile '*' %s", $image, $thumb这已经很长时间了.已经处理了数千张图像,所有缩略图看起来都很棒......除了一张.由于某种原因,这个图像产生一个非常难看的缩略图,我无法弄清楚为什么.
原始图片:http://i.imgur.com/fCbAN.jpg
生成的缩略图:http://i.imgur.com/MdLCs.jpg
有没有人对我的转换代码可能发生的原因有任何见解?
缩略图已保存,质量非常低(大约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运行.