【ruby】ruby图像处理模块“mini_magick”
目录
- 1.安装mini_magick
- 2.使用图像处理模块
- 2.1获取图像实例的方式
- 2.2获取一些图像的属性
- 2.3对图像进行裁剪
- 2.4图像重叠
- 3.学习链接
记录一篇关于图像处理的模块,工作中有些场景可能用得上.
1.安装mini_magick
通过gem(ruby的包管理工具)安装就好:gem install mini_magick
注意: 如果在运行代码时,报错了我这里列举两个错误,大家可以参考一下
`rescue in validate!': You must have ImageMagick or GraphicsMagick installed (MiniMagick::Invalid)
- 上面的错误是说你缺少依赖,因为用的是mac,所以我们这边直接装就好了,“ImageMagick”和“GraphicsMagick”装一个就好:
brew install ImageMagick
Reason: tried: '/opt/homebrew/opt/glib/lib/libglib-2.0.0.dylib' (no such file)
- 这个错误可能跟你上面安装ImageMagick缺少了一个glib依赖,我们这边手动装一下就好了:
brew install glib
2.使用图像处理模块
2.1获取图像实例的方式
文件名: get_image_instance.rb
# 引入图像处理模块
require 'mini_magick'# 1.通过文件路径和名称获取实例
img = MiniMagick::Image.open('./login.png')# 2.通过流的方式获取图像实例
image = File.open './login.png'
file_img MiniMagick::Image.read image# 有人会问这里为什么要多此一举,实际上不是,第二种方式想表明的是你可以通过传入base64字符串获取图像实例,有时候我们截图之后我们可以直接拿到base64字符串,就不需要本地去保存,节省我们的io
2.2获取一些图像的属性
文件名: get_attribute.rb
# 引入图像处理模块
require 'mini_magick'# 获取图像实例(同文件目录下放一张login.png的图片)
img = MiniMagick::Image.open('./login.png')# 列举一些常用的
# 查看图像的长宽
w,h = img[:width],img[:height]
p w, h# 查看图像大小
p img[:size]# 查看图像类型
p img[:type]# 查看图像数据
p img[:data]# 查看图像详情
p img[:details]
2.3对图像进行裁剪
文件名: crop_example.rb
# 引入图像处理模块
require 'mini_magick'# 获取图像实例(同文件目录下放一张login.png的图片)
img = MiniMagick::Image.open('./login.png')# 对图片中特定位置的图像进行裁剪
# width(图像宽度), height(图像高度), left(图像距离左边框的距离), top(图像距离上边距的距离)
# img.crop("widthxheight+left+top")
img.crop("500x500+500+500")
# 将裁剪的结果图片保存到指定路径中
img.write("./login.png")
2.4图像重叠
文件名:overlapping_images.rb
# 引入图像处理模块
require 'mini_magick'# 同目录下准备你要重叠的两张图片
first_image = MiniMagick::Image.open "./first.jpg"
second_image = MiniMagick::Image.open "./second.jpg"
result = first_image.composite(second_image) do |c|c.compose "Over" # 设置让second图像在first上方c.geometry "+20+20" # 将 second_image 从 (20, 20) 复制到 first_image
end
# 将裁剪的结果图片保存到指定路径中
result.write "./output.jpg"
3.学习链接
详细文档: https://rubydoc.info/gems/mini_magick/MiniMagick/Image
【ruby】ruby图像处理模块“mini_magick”相关推荐
- 关于 Ruby Ruby on Rails 的一些书及论坛网站
关于 Ruby &Ruby on Rails 的一些书及论坛网站 需要用到的一些书 The Ruby Way Programming Ruby 2nd edition Agile Web ...
- python图像处理---python的图像处理模块Image
https://blog.csdn.net/jiaoyangwm/article/details/79293272 [python图像处理]python的图像处理模块Image 版本信息:2.7.11 ...
- 无人机光电系统图像处理模块AVT22
aseVision无人机光电系统图像处理模块AVT22 上海凯视力成信息科技有限公司 刘泊淼 CaseVision公司最新推出适合无人机光电系统的多功能图像处理模块AVT22.该模块提供了丰富的视频处 ...
- python中paste函数的作用_PIL图像处理模块paste方法简单使用详解
python2中提供了PIL基础的图像数据出来模块,在python3中更名为了pillow模块,名字虽然发生了改变,但是提供的方法和功能都是一样的,对于日常基础的图像数据处理分析来说是足够用了的,现在 ...
- 开源智能相机- Xilinx Zynq-7000高清图像处理模块
Zynq-7000图像处理模块设计资料保存:开源智能相机- Xilinx Zynq-7000高清图像处理模块 一.产品概述 Z-turn Board是一款以Xilinx Zynq-7010/7020全 ...
- Ruby的module(模块)
定义模块用module...end .模块与类非常相似,但是: 模块不可以有实例对象: 模块不可以有子类. #Module(模块) module Module1 def sqrt(num, rx= ...
- php调用ruby,ruby、javascript、php中的观察者模式实现代码
面试被问及到js中的观察者模式,这玩意儿早就了解过,可以说是动态语言中非常有用的一个设计模式,非常惭愧的没有系统的研究过.不过没关系,哪里不会补哪里,立刻动手,用所会的语言都实现一遍. 观察者模式 关 ...
- html菜鸟ruby,ruby的基础语法
一.注释与分行 Ruby中的注释有单行与多行两种,例如: Ruby代码 puts '以下是单行注释' # 这行是单行注释,单行注释用"#" =begin 多行注释可以用" ...
- Ruby: Ruby脚本在测试中的使用
如果存在以下的场景: 1. 放置在公司的读报机服务器,每天都是开启的: 2. 读报机每天下载报纸,一旦成功/失败,就会有相应的记录生成在某个xml文件中: 3. 现在有过去一年的读报机下载xml,大约 ...
- python的窗口处理模块_python的图像处理模块
除了opencv专门用来进行图像处理,可以进行像素级.特征级.语义级.应用级的图像处理外,python中还有其他库用来进行简单的图像处理,比如图像的读入和保存.滤波.直方图均衡等简单的操作,下面对这些 ...
最新文章
- mysql的配置文件几个_mysql多实例(多个配置文件方式)
- set集合, 深浅拷贝, join, 列表和字典在循环中删除元素的问题, fromkeys( , )
- shiro系列一、认识shiro
- 山东财经大学python试卷_山东财经大学微观经济学试卷1及答案
- linux 安装sysstat使用iostat、mpstat、sar、sa
- 史上最全总结!Util、POJO、domain、entity、model、DAO、DTO、view、mapper、service、controller的作用和区别分析
- redis源码剖析(五)—— 字符串,列表,哈希,集合,有序集合
- 汇编程序—将一个全是字母,以0结尾的字符串,转化为大写
- Visual Studio下的 JS CSS 压缩和编辑插件
- cookie不正确 请重新登录_小学多陪,初中少陪,高中不陪!小学6年陪孩子写作业的正确方式,请家长收下!...
- eclipse+Maven安装和配置
- mysql odbc连接池_Java Mysql连接池配置和案例分析--超时异常和处理
- javascript 使用drop元素实现拖动(ondragstart、ondrag、 ondragend、ondragenter,ondragover、ondragleave、ondrop )
- 软件测试基础—易用性测试
- java中this有什么作用_Java中this有什么用
- AutoRunner 功能自动化测试项目实训之认识自动化测试工具AutoRunner(二)
- 【MindSpore易点通】一站式指南
- c++直角空心三角形_2019秋人教版八年级数学上册三角形教材全解读
- 小程序源码:修复登录接口仿抽奖助手-多玩法安装简单
- 什么是BFC?BFC的形成条件?BFC的应用场景
热门文章
- java int 转 object_在java上将int转换为Object
- 内存颗粒和闪存颗粒的区别_什么是内存颗粒以及内存颗粒的种类和差别
- PCAN-Explorer5 基本使用方法
- js 截取长图(html2canvas),并下载
- 在树莓派3上使用红外遥控器控制libreELEC和Raspbian系统
- 微信小程序自定义tab切换组件
- app抓包工具_安卓APP逆向入门分析——破解某APP登陆请求参数
- Struts 2的基石——拦截器(Interceptor)详细讲解
- 企业微信的一周小结是怎么统计的?
- 公众号下面显示一排服务器,新技能get 微信公众号文章花式排版大法