0

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

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

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

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

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

我想动态切换case1和case2。

你有什么好主意吗?

4

1 回答 1

0

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

关于你问题的第二部分:

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

这是写在回形针文档 [1] 中的内容

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

has_attached_file :scan, :styles => { :text => { :quality => :better } }, :processors => [:ocr]

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

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

于 2012-11-02T11:47:23.843 回答