我使用CarrierWave::RMagick
为Rails应用创建图像的缩略图版本,并且我注意到图像缩小时的质量损失。这在一定程度上是可以理解的,因为我们在缩小图像中的像素较少,因此质量较差,但我希望质量更好。我给你举个例子:
从左到右,第一个是原始(100x105),第二个是Photoshop的Bicubic调整大小(95x100),第三个是RMagick resize_to_fit
的结果(95x100)。
对于此示例,原始图像仅略大于我想要的缩略图,但我基本上强制每个缩略图最大为100x100。我希望你能看到缩小尺寸的图像之间的区别。将Photoshop的质量与RMagick的质量进行比较可能是愚蠢的,但即使在Chrome中缩小以使图像更小也能产生更高质量的图像。
我基本上在CarrierWave上传器类中使用它:
version :thumb do
process :resize_to_fit => [100, 100]
end
有关如何改善图像质量的任何想法?或者如果有任何替代RMagick可以做得更好?
编辑:我已尝试this,但这没有任何区别。无论如何,我认为那是JPEG图像。
答案 0 :(得分:0)
问题似乎出现在imagemagick库中,而不是特定于carrierwave或rmagick。
您可以在命令行中测试它。使用imagemagick自己的mogrify
命令,这两个命令都会产生与rmagick相同的模糊输出:
mogrify -resize 100x100 original.png
mogrify -resize 100x100 -quality 100 original.png
imagemagick docs表示-resize
命令(由wavewave通过rmagick或minimagick使用)会为我们在此处测试的小变化创建模糊的结果,并且您最好使用-adaptive-resize
命令,但在我的快速测试中,我无法产生更好的结果。
其他人reported better results使用graphicsmagick而不是imagemagick(也可能需要从rmagick切换到minimagick),但我没有测试过。