【问题标题】:RoR - Paperclip - How to set minimal width of an attachementRoR - 回形针 - 如何设置附件的最小宽度
【发布时间】:2025-11-29 23:15:04
【问题描述】:
我的布局要求将所有缩略图保持在 80 像素高度,不能更高,也不能更小。在我的模型中,我将样式设置为:thumb=> "500x80>",所以基本上几乎每张不太宽的图片都会得到完美的缩影,高度为 80 像素。但是,有时我的图片又窄又高,因此拇指可能具有无法点击的尺寸,例如 5x80。所以我不想裁剪图片,只要缩略图没有变得疯狂变窄,但我认为如果拇指的宽度小于 25px,我可以做出一点牺牲并裁剪它们。
所以我的问题是 - 是否可以在回形针中设置图片的最小比例,其中样式将是 "500x80>" 并且超过它会变成像 "25x80#" 这样的东西?
【问题讨论】:
标签:
ruby-on-rails
width
paperclip
dimensions
【解决方案1】:
几周前,我在互联网的某个地方找到了一个不错的解决方案。我忘了在哪里,对不起。但它看起来像这样:
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