纸夹(Paperclip):如何更改“#”修饰符的行为?

3
我在我的Rails 3应用程序中使用Paperclip 2.3.11,使用以下代码创建缩略图:
:styles => { :thumb => "80x80#" }

然而,如果图片很小,比如 32x32,它会被放大以适应缩略图尺寸。
我想通过修改 Paperclip 来解决这个问题。
不幸的是,我找不到描述 # 行为的相关代码。
请问你能否指出 Paperclip 代码中正确的位置?
或者,也许有更好的解决方案?我希望缩略图的大小为 80x80,除非原始图片太小(在这种情况下,缩略图应与原始图片大小相同)。

1
使用 :styles => { :thumb => "80x80" } 是吗? - NARKOZ
@NARKOZ:我明确提到我想要缩略图是 80x80。如果原始图像是正方形,:styles => { :thumb => "80x80" } 将会产生一个 80x80 的缩略图。我有什么遗漏吗? - Misha Moroshko
3个回答

0

所以,# 是 Paperclip 使用的一个参数,用于确定您是否希望对图片进行裁剪。

它是通过 crop? 方法写入 这里 的,该方法本身查看 geometry[-1,1]:基本上是您输入的样式的最后一个字符。

然后,您可以:

  • 尝试 @David Sulc 建议的内容,这似乎与我之前的解释相符

  • 深入研究 Paperclip 的代码,可能需要重写 这里 定义的 transformation_to 方法


# 修改器在 ImageMagick 中不存在,它是 Paperclip 的扩展。 - Misha Moroshko
第一个选项不起作用,所以我猜只剩下第二个选项了 :) - Misha Moroshko

0

你试过 :styles => { :thumb => "80x80>#" } 吗?(抱歉,我不能亲自尝试...)


很遗憾,它不起作用。图片仍然被调整大小(就像使用 80x80# 一样)。 - Misha Moroshko

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接