我希望能够验证图像是否具有某个高度或某个高度,或者它是否为正方形。
在has_attachment
模型的验证区域中,当我尝试访问image_size
,width
或height
时,它始终显示为空。
如果您需要更多详细信息,我还会问here这个问题。
答案 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插件,它依赖于以下宝石
rmagick-2.11.0
image_science-1.2.0
确保您已安装上面的宝石,并在has_attachment中更改宽度和高度,然后您就可以看到更改。
祝你好运!