回形针仅处理图像

时间:2011-03-13 13:33:31

标签: ruby-on-rails ruby image-processing paperclip

我想将单个文件字段用于多种格式。据我所知,Paperclip非常聪明,只能缩放图像并保留其他格式,但这似乎不适用于flv(返回imagemagick / identify-errors)。有没有办法帮助Paperclip并明确设置特定格式进行扩展?

更新 显然,这些错误可以通过以下方式防止:whiny => false(感谢fl00r),适用于常规上传。 但是,我在这里要做的是通过FTP上传文件,然后通过附件 - 参数中的File.new([:path])的代码创建新记录。这就像图像的魅力一样,但是:whiny =>假伎俩不再这样做了。有人对此有任何提示吗?

2 个答案:

答案 0 :(得分:13)

:whiny选项设置为false:

has_attached_file :my_attach, :whiny => false ...

它不会帮助peparclip仅处理图像,但如果处理失败则不会抛出错误

<强> UPD

仅处理图像:

has_attached_file :file, 
  :styles => lambda{ |a| ["image/jpeg", "image/png"].include?( a.content_type ) ? { :small => "90x90#" } : {}  }

您可以将内容类型添加到["image/jpeg", "image/png"]数组

答案 1 :(得分:3)

您还可以使用回形针的回调进行图像的后期处理,并指示回形针仅处理图像。如果before_post_process回调返回false,则处理停止。

    before_post_process :process_only_images

    def process_only_images
     %w(image/jpeg, image/png,image/gif,image/pjpeg, image/x-png).include?(attachment_content_type)
    end

查看回形针的文档,了解更多详情,请访问https://github.com/thoughtbot/paperclip#events