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