如何验证attachment_fu的图像宽度和高度?

时间:2009-02-01 02:43:33

标签: ruby-on-rails ruby image attachment-fu

我希望能够验证图像是否具有某个高度或某个高度,或者它是否为正方形。

has_attachment模型的验证区域中,当我尝试访问image_sizewidthheight时,它始终显示为空。

如果您需要更多详细信息,我还会问here这个问题。

4 个答案:

答案 0 :(得分:4)

是的,你需要破解一下才能让它发挥作用,但不是那么多。改编自attachment_fu自己的图像处理器:

 validate :validate_image_size

  private

  def validate_image_size
    w, h = width, height

    unless w or h
      with_image do |img|
        w, h = img.columns, img.rows
      end
    end

    errors.add(:width, "must less than 250px")  if w > 250
    errors.add(:height, "must less than 250px")  if h > 250
  end
end

答案 1 :(得分:0)

您尚未指定正在使用的语言和系统。

但是,对于大多数Web框架,我认为使用image magic执行此操作的标准方法。试试identify function.

答案 2 :(得分:0)

你看过mini-magick吗?

你可以从这里git克隆它:

http://github.com/probablycorey/mini_magick/tree/master

如果您需要了解git,请查看以下链接:

http://git.or.cz/course/svn.html(使用git进行速成课程,与颠覆相比)

http://github.com/guides/git-screencasts(github截屏视频)

这是一个围绕imagemagick函数的ruby包装器(不确定attachment_fu是否在内部使用它),但它比RMagick(RMagick非常膨胀,存在大量内存问题)绝对跳跃和界限。 Anywho,mini-magick将让你做你需要的所有事情然后一些。查看上面github链接中列出的README,它将为您提供有关如何使用它的简要说明。

这是一个片段:

#For resizing an image
image = MiniMagick::Image.from_file("input.jpg")
image.resize "100x100"
image.write("output.jpg")

#For determining properties of an image...
image = MiniMagick::Image.from_file("input.jpg")
image[:width] # will get the width (you can also use :height and :format)

答案 3 :(得分:0)

我认为您缺少必须安装的必备宝石才能使用attachment_fu来调整图像大小。我使用了attachment_fu插件,它依赖于以下宝石

  1. rmagick-2.11.0

  2. image_science-1.2.0

  3. 确保您已安装上面的宝石,并在has_attachment中更改宽度和高度,然后您就可以看到更改。

    祝你好运!