如果原始文件太小,Paperclip不会创建缩略图

时间:2012-05-15 02:45:29

标签: ruby-on-rails paperclip

我使用回形针和设置如下。

has_attached_file :attached,
      :styles => {
        :small => ["170x170>", :jpg], :large => ["400x400>", :jpg]
      }

如果原始文件太小,我希望不创建缩略图。 例如,如果原始文件是250x250,则创建“小缩略图”(170x170), 但是,不会创建大缩略图。

但是,在上面的设置中,“小”和“大”都被创建......

此外,我想切换缩略图设置。 例, case1:如果原始文件是250x250,则创建“小”和“大”缩略图。 case2:如果原始文件是250x250,则只创建“小”缩略图。

我想动态地打开case1和case2。

你有什么好主意吗?

1 个答案:

答案 0 :(得分:0)

问题的第一部分: 如果原始文件太小,Paperclip不会创建缩略图 您已指定回形针以仅在图像大于您指向的尺寸时调整图像大小。这是通过>完成的。后缀

关于你问题的第二部分:

您必须自己动手 - 检查回形针处理器的工作方式

这是用回形针文档[1]

写的

Paperclip支持可扩展的后处理器选择。为附件定义一组样式时,默认情况下,这些“样式”实际上是“缩略图”。但是,您可以做的不仅仅是缩略图。 通过定义Paperclip :: Processor的子类,您可以对附加的文件执行任何处理。您的Rails应用程序的lib / paperclip_processors目录中的任何文件都由paperclip自动加载,允许您轻松定义自定义处理器。您可以使用has_attached_file:

的:processors选项指定处理器

has_attached_file:scan,:styles => {:text => {:quality => :更好}},                           :processors => [:OCR]

这会加载假设类Paperclip :: Ocr,它会将散列“{:quality =>:better}”与上传的文件一起传递给它。有关定义处理器的更多信息,请参阅Paperclip :: Proc

[1] https://github.com/thoughtbot/paperclip