当前位置: 首页 > 工具软件 > RMagick > 使用案例 >

Rails中rmagick库的简单用法

董庆
2023-12-01

首先rmagick是一个图形处理库,需要ImageMagick的支持.

在安装了imagemagick库之后,你可以直接用如下命令查看其所支持的图片格式:

convert -version
#输出如下:
Version: ImageMagick 6.9.7-9 Q16 x86_64 2017-02-18 http://www.imagemagick.org
Copyright: © 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC Modules 
Delegates (built-in): bzlib freetype jng jpeg ltdl lzma png tiff xml zlib

如果不支持png,你可能要单独安装libpng库.

rmagick的帮助文档在 : http://www.rubydoc.info/gems/rmagick/
其github官站为 : https://github.com/rmagick/rmagick

不过可能是版本原因,有些方法和属性没有列出,你可以到google去查找.

rmagick可以打开一个图片然后处理:

Magick::Image.read(image_path).first

你可以缩放图片,加水印,反转,模糊,灰化,加边框,加阴影等等各种任性操作,请自行谷歌之…

你还可以直接从内存创建Image对象:

img_content = File.open(image_path).read
Magick::Image.from_blob(img_content)

你还可以随时返回一个图片的字节数据:

img.to_blob

有时你事先还想判断一个文件是否为合法的图片,仅仅靠文件名后缀当然是不够的,这个世界套路够深,所以你必须检查文件实际内容.这个需要另外的gem:ruby-filemagic,对应你要安装libmagic库:

brew install libmagic

然后你可以检查是否为合法的图片文件:

if FileMagic.new(FileMagic::MAGIC_MIME).file(staff[:image].path).match(/image/)
    #合法图片
else
    #非法图片
end

PS:若你觉得rmagick太大太复杂,你也可以选择更为小巧的mini_magick库 ;)

 类似资料: