Paperclip:如何更改“#”修饰符行为?

时间:2011-07-19 13:16:12

标签: ruby-on-rails ruby-on-rails-3 imagemagick paperclip

我在Rails 3应用程序中使用Paperclip 2.3.11,并使用以下方法创建缩略图:

:styles => { :thumb => "80x80#" }

但是,如果图片很小,请说32x32,它会被放大以适合缩略图尺寸。

我想通过黑客Paperclip解决这个问题。

不幸的是,我找不到描述#行为的相关代码。

你能指点一下Paperclip代码中的正确位置吗?

或者,也许有更好的解决方案?我希望缩略图为80x80,除非原始图片太小(在这种情况下缩略图应与原始图片的尺寸相同)。

3 个答案:

答案 0 :(得分:0)

因此,#是Paperclip使用的参数,用于了解您是否期望裁剪图片。

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

然后你可以:

  • 尝试@David Sulc的建议,对于我以前的解释似乎没问题

  • 在Paperclip的代码中进一步挖掘并重写transformation_to已定义here

答案 1 :(得分:0)

你试过:styles => { :thumb => "80x80>#" }吗? (对不起,我自己不能试试......)

答案 2 :(得分:0)

您可以获得ImageMagick使用的Geometry String的更多信息,如下所示: http://www.imagemagick.org/RMagick/doc/imusage.html