0

私のレイアウトの要件は、すべてのサムネイルを 80 ピクセルの高さで維持することです。私のモデルでは、スタイルを に設定した:thumb=> "500x80>"ため、基本的に、幅が広すぎないほぼすべての画像が高さ 80px の完璧なミニチュアになります。ただし、私の写真は狭くて高い場合があるため、親指のサイズが 5x80 のようにクリックできないことがあります。サムネールが極端に狭くならない限り、写真をトリミングしたくありませんが、親指の幅が 25px よりも小さくなっている場合は、少し犠牲にしてトリミングできると思います。

だから私の質問は - ペーパークリップでスタイルがあり"500x80>"、それを超えて sth のようになる画像の最小比率を設定することは可能"25x80#"ですか?

4

2 に答える 2

2

私は数週間前にインターネットのどこかで素晴らしい解決策を見つけました。どこを忘れたのか、ごめんなさい。しかし、次のようになります。

has_attached_file :img, :styles => {:thumb => [Proc.new { |instance| instance.resize }, :jpg]}


def resize     
@geo_original = Paperclip::Geometry.from_file(img.to_file(:original))

ratio = @geo_original.width/@geo_original.height  

if ratio < 0.4 or ratio > 1.375
    # Image very high or very wide
    "110x80#"   
else
    # Average dimensions
    "110x80>"
end
end
于 2010-08-28T15:50:32.937 に答える
-1

ペーパークリップだけを使ってこれをどのように達成できるかわかりません-どういうわけかそれを行う必要があるように感じますね?

Paperclipはバックグラウンドでimagemagickを使用しているだけです(http://www.imagemagick.org/Usage/resize/#shrink)。画像マジックを使用して、厄介な狭い画像を毎晩成長させるジョブをcronできます。

それはハックですが、私が提供できる最善のアイデアです。

幸運を。

于 2010-05-07T14:50:04.037 に答える