通过Carrierwave,mini-magick和ImageMagick识别图像深度和打印尺寸

时间:2014-02-06 16:08:02

标签: ruby-on-rails-3 imagemagick carrierwave minimagick

目标是根据动态高度和宽度参数以及DPI验证图像。

ImageMagick具有以下命令Identify,其中包含许多选项。

-density

将生成几何widthxheight

-verbose

将生成一个有用的“打印尺寸:”和“分辨率”......在其他78个不同的行中...需要解析宽度和高度以满足最低要求+/- 2%

那么如何将这些提取到一个方法中,而不是踩到中间脚趾(迷你魔法)?

1 个答案:

答案 0 :(得分:3)

正如section on meta-information所示,MiniMagick在一次调用中使用ImageMagick函数访问数据,例如高度密度:

image["%y"]

ImageMagick有47个single-letter attribute percent escapes,允许提取数据,只要您对图像的调用包含“.path”后缀

image = MiniMagick::Image.open(@yourClass.theColumn.path)