ImageMagick 的安装及使用
一、什么是Imagemagick?
ImageMagick是一款免费开源的图片编辑软件。既可以通过命令行使用,也可以通过C/C++、Perl、Java、PHP、Python或Ruby调用库编程来完成。ImageMagic的主要精力集中在性能,减少bug以及提供稳定的API和ABI上。
二、下载和安装
这里以Windows为例
使用16-bit在处理图片时比8-bit慢15%至50%,内存也为2倍。比如处理一张1024x768像素的图片8-bit要使用3.6M内存,16-bit要使用7.2M内存。
这里我们选择下载官方推荐的文件,也就是第一个:ImageMagick-7.0.8-12-Q16-x64-dll.exe
这个7.0版本和6点几版本有些不同,系统环境变量都是自动配置好的。
使用 magick --version 查看是否安装成功:
三、使用
如果很多子命令不能直接使用,则可以把他们当做magick的子命令使用,如:
identify bbb.png
magick identify bbb.png
1、转换格式
magick test.jpg test.png
表示把test.jpg这个图片另存一份为test.png,同时修改了图片名称和格式
(原来jpg比png小不少
2、合成gif
magick a.jpg b.jpg c.jpg test.gif
magick *.jpg images.gif
将指定的图片合成一个gif(好像以第一张图的大小为准)
3、调整图片大小
按比例改变
magick b.png -resize % b1.png
magick convert b.png -resize % b1.png
magick convert -resize % b.png b1.png
图片宽扩展为原来的2倍,高缩小为原来的一半
magick convert b.png -resize 200x50% b7.png
magick convert b.png -resize %x50% b8.png
宽调整为100,高按原来图片宽高比例跟着调整
convert -resize b.png b15.png
高调整为200,宽按原来图片宽高比例跟着调整
convert -resize x200 b.png b16.png
4、移除图片内嵌的所有配置文件
magick convert -strip .jpg
5、裁剪图片
crop参数可以把一副图像分成若干块大小一样的图片
magick img1.jpg -crop 500x500 dest.jpg
例如,原图片尺寸为1920x1200,所以可以分割出12块图片,注意如果尺寸不是目标图片的整数倍,那么右边缘和下边缘的一部分图片就用实际尺寸
在原始图像上裁剪一张指定尺寸的小图
magick img1.jpg -crop 600x450++ dest.jpg
600x450是宽乘高,+300+600是横纵坐标
6、图片取反
magick convert a.jpg -negate canny.jpg
7、压缩图片
将图片质量降为原来的10%(即压缩掉了90%),取值范围1 ( 最低的图像质量和最高压缩率) 到100 ( 最高的图像质量和最低压缩率),默认值根据输出格式有75、92、100,选项适用于JPEG / MIFF / PNG.
magick convert -quality .jpg .jpg
实例:生成缩略图:
-resize,定义输出的缩略图尺寸;-quality 70,降低缩略图的质量为70%;-strip:让缩略图移除图片内嵌的所有配置文件,注释等信息,以减小文件大小。
magick convert -resize 100x200 -quality -strip .jpg .jpg
8、给图片加边框
设置边框颜色为蓝色(也可以用rgb(0,0,255)或者rgb(0%,0%,100%)代替),宽的边框和高的边框分别为宽的5%、高的5%,也就是说,图片的高和宽都增大了10%
magick .jpg -bordercolor blue -border % .jpg
9、滤镜
magick convert monochrome .jpg -monochrome monochrome_example.jpg
magick convert charcoal .jpg -charcoal 1.2 charcoal _example.jpg
-monochrome没有相关的配置选项;但是-charcoal需要设置一个相关因子,1左右能实现类似炭笔绘画的效果。
magick convert a.jpg -edge edge.jpg
magick convert a.jpg -colors color.jpg
减少为2种颜色,这些选项也可以一起使用。
10、边缘检测
magick convert a.jpg -canny canny.jpg
使用canny算法,带粗粒度参数。
图像取反的话就很好看了:
magick convert a.jpg -canny -negate canny.jpg
参考链接:
1. https://www.cnblogs.com/wbxk/p/9794094.html
2. https://blog.csdn.net/qq_24127015/article/details/86523738
3.https://blog.csdn.net/wangmeitingaa/article/details/88885711
4. https://www.imooc.com/article/46112?block_id=tuijian_wz
ImageMagick 的安装及使用的更多相关文章
- 转:ImageMagick +Jmagick安装
原文来自于: 目录 一.ImageMagick介绍 二.安装支持库 三.在Linux上用源码编译安装ImageMagick与Jmagick 四.在Linux上使用yum安装ImageMagick与Jm ...
- ImageMagick jmagick 安装
在安装ImageMagick之前,请检查下面包已经安装 tiff-3.9.5.tar.gz (rpm -qa|grep libtiff检查是否已经安装) libpng-1.2.46.t ...
- ImageMagick的安装及使用
近期在使用ImageMagick处理酒店团购图片,写篇博客小小的总结下它的安装及使用方法.ImageMagick是一套功能强大且免费的图片处理开发包,能够用来读,写和处理多种格式的图片文件,总之非常强 ...
- 图片处理服务 ImageMagick 的安装和使用
简介 该文章使用目前官方最新版本7.0.8,这里只记录下Windows系统下的安装. 官方网站:http://www.imagemagick.org/script/index.php. ImageMa ...
- php imagemagick库安装使用
imagemagick介绍: ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. ...
- linux安装imagemagick,centos安装imagemagick方法
1.安装文件格式支持库 yum install tcl-devel libpng-devel libjpeg-devel ghostscript-devel bzip2-devel freetype- ...
- Centos5.8 安装 ImageMagick 6.8.9-3
下载最新的ImageMagick源码包 ImageMagick-6.8.9-3.x86_64.rpm 直接prm -ivh 安装提示错误 error: Failed dependencies: lib ...
- Mac下ImageMagick安装(libpng)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/42562705 ...
- php安装imagemagick扩展 常见问题与解决方案(win平台)
1.写在前面 1-1.ImageMagick介绍 ImageMagick是一套功能强大.稳定而且开源的工具集和开发包,可以用来读.写和处理超过89种基本格式的图片文件,包括流行的TIFF.JPEG.G ...
随机推荐
- DDR3(4):读控制
写控制完成后开始设计读控制,写控制和读控制是非常相似的. 一.总线详解 由 User Guide 可知各信号之间的逻辑关系,读数据是在给出命令之后一段时间后开始出现的.图中没有给出app_rd_dat ...
- Prometheus 监控linux服务器
Prometheus 监控linux服务器 node_exporter:用于*NIX系统监控,使用Go语言编写的收集器. 使用版本 node_exporter 0.17.0 相关文档 使用文档:htt ...
- 对ssm框架里面的一些常用注解的理解
@Componcnt :作用就是把当前类对象存入spring容器中 属性:value 用于指定bean的id 当我们不写的时候默认就是当前类名,并且首字母要小写 ------------------- ...
- English--七种句子成分概述
English|七种句子成分概述 现代英语的语法是非常严谨的,英语句子的成分与汉语的句子成分有很大的区别.所以在学习语法的开始,需要上文讲到的句型作为骨架支撑,还需要明白句子的成分是什么,以及个各自的 ...
- js查询手机号码格式是否正确
直接上代码,复制开用 let regExp = /^([-]{,}\-)?[-]{,}$|^?[|||7||][-]\d{}$/; //验证的手机号码格式 //this.ruleForm.adminC ...
- 一次 Young GC 的优化实践(FinalReference 相关)
本文转载自公众号:涤生的博客,阅读时间大约需要11分钟.涤生的文章看起来跟破案一样,很精彩,很有启发. 前言 博客已经好久没有更新了,主要原因是 18 年下半年工作比较忙,另外也没有比较有意思的题材, ...
- JVM 源码解读之 CMS 何时会进行 Full GC
t点击上方"涤生的博客",关注我 转载请注明原创出处,谢谢!如果读完觉得有收获的话,欢迎点赞加关注. 前言 本文内容是基于 JDK 8 在文章 JVM 源码解读之 CMS GC 触 ...
- Spark排序方式集锦
一.简介 spark中的排序一般可以使用orderBy或sort算子,可以结合负号.ASC/DESC和col进行简单排序.二次排序等情况 二.代码实现 package big.data.analyse ...
- 排序算法的c++实现——计数排序
任何比较排序算法的时间复杂度的上限为O(NlogN), 不存在比o(nlgN)更少的比较排序算法.如果想要在时间复杂度上超过O(NlogN)的时间复杂度,肯定需要加入其它条件.计数排序就加入了限制条件 ...
- JavaScript基础内容中的函数详解
函数 函数:即方法 函数就是一段预先设置的功能代码块,可以反复调用,根据输入参数的不同,返回不同的值. 为什么使用函数: 1.方便调用 2.代码重用,利于维护 3.便于修改,便于重构 4.简化逻辑,利 ...