2

Carrierwave アップローダーを入手し、次のような画像を処理します。

version :thumbnail do
    process :resize_to_model
    process :quality => 90   
end

def resize_to_model
  thumbs_size = model.thumbnail_size
  resize_to_fill thumbs_size[:width], thumbs_size[:height]
end

ただし、1024x724px で 214x151px の画像を処理した後、ファイル サイズは 2.1mb から 1.8mb にしか減少しませんでした。そのサイズで1.8MBは本当に多いと思います。それについて何かできることはありますか?90% の品質でも、画像はおそらく 100kb 程度になるはずですか?

誰かが尋ねる前に、残りは完璧に機能します。エラーはありません。ピクセル単位のサイズは正しく、他のすべても問題ありません。

編集:rmagick(resize_to_fill)を使用することを忘れていました。それが理由なのかな。

4

1 に答える 1

0

100%と90%の品質の違いは非常に小さく、ストレージスペースの節約はごくわずかです。このバージョンをサムネイルとして使用しているだけの場合は、60%または40%など、はるかに低い品質を使用することを検討する必要があります。

品質がまだ「十分に良い」ことを確認することに懸念がある場合は、さまざまな圧縮技術を検討することもできます。この場合、Retinaディスプレイに@2x画像を提供するために使用されるプロセスを使用できます。FilamentGroupの記事CompressiveImagesに優れたリソースがあります。

tl; drバージョンは、基本的に、画像の元の(または元に近い)サイズを使用しますが、画像の品質を大幅に低下させます(0〜20%)。次に、低品質の画像を使用する場合は、要素widthheight属性を指定<img>して、サムネイルサイズにサイズを変更してください。画像が縮小されるため、「サムネイル」画像の品質が低下することはありません。

于 2013-03-15T15:02:49.840 に答える