7

我使用CarrierWave::RMagick爲Rails應用程序創建圖像的縮略圖版本,並且我注意到圖像縮小時質量下降。這在一定程度上是可以理解的,因爲我們在縮小圖像中像素較少,因此質量較差,但我期望更好的質量。我告訴你一個例子:下載CarrierWave :: RMagick後,PNG圖像質量下降resize_to_fit

OriginalPhotoshop (Bicubic)RMagick

從左至右,第一個是原來的(100x105),第二個是Photoshop的雙三次調整大小(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

你有沒有想過這個? – cman77

+1

不,從來沒有。我也找不到更好的選擇,所以我忍受它:) – Merott

+0

jpg將幫助使用許多漸變的某些圖像。但是,我懷疑這個問題是隨着用於擴展的老化RMagick算法。在Photoshop中的結果是不同的,我相信這是事業。 RMagick的一個替代品是Jimp,但它完全不同,並且不是用於導軌。 – Eddie

回答

0

這個問題似乎是在imagemagick庫中,而不是特定於carrierwave或rmagick。

你可以在命令行中測試它。這些命令產生相同的模糊輸出作爲rmagick,使用ImageMagick自己mogrify命令:

mogrify -resize 100x100 original.png 
mogrify -resize 100x100 -quality 100 original.png 

imagemagick docs表明-resize命令(經由rmagick或minimagick使用carrierwave)創建像一個小的變化的模糊結果我們在這裏進行測試,並且最好使用命令-adaptive-resize,但在我的快速測試中,我無法產生更好的結果。

其他人有reported better results使用graphicsmagick而不是imagemagick(它可能還需要從rmagick切換到minimagick),但我沒有測試過這個。