ImageMagick 的安装及使用

ImageMagick 的安装及使用一、什么是Imagemagick?ImageMagick是一款免费开源的图片编辑软件。既可以通过命令行使用,也可以通过C/C++、Perl、Java、PHP、Python或Ruby调用库编程来完成。

大家好,又见面了,我是你们的朋友全栈君。

一、什么是Imagemagick?

ImageMagick是一款免费开源的图片编辑软件。既可以通过命令行使用,也可以通过C/C++、Perl、Java、PHP、Python或Ruby调用库编程来完成。ImageMagic的主要精力集中在性能,减少bug以及提供稳定的API和ABI上。

二、下载和安装

这里以Windows为例

 

<span role="heading" aria-level="2">ImageMagick 的安装及使用

 

 

 使用16-bit在处理图片时比8-bit慢15%至50%,内存也为2倍。比如处理一张1024×768像素的图片8-bit要使用3.6M内存,16-bit要使用7.2M内存。

这里我们选择下载官方推荐的文件,也就是第一个:ImageMagick-7.0.8-12-Q16-x64-dll.exe

这个7.0版本和6点几版本有些不同,系统环境变量都是自动配置好的。

使用 magick –version 查看是否安装成功:

<span role="heading" aria-level="2">ImageMagick 的安装及使用

 

 三、使用

如果很多子命令不能直接使用,则可以把他们当做magick的子命令使用,如:

identify bbb.png
magick identify bbb.png

1、转换格式

magick test.jpg test.png

表示把test.jpg这个图片另存一份为test.png,同时修改了图片名称和格式

<span role="heading" aria-level="2">ImageMagick 的安装及使用

 (原来jpg比png小不少

2、合成gif

magick a.jpg b.jpg c.jpg test.gif
magick *.jpg images.gif

将指定的图片合成一个gif(好像以第一张图的大小为准)

3、调整图片大小

按比例改变

magick b.png -resize 200%  b1.png
magick convert b.png -resize 200%  b1.png
magick convert -resize 200% b.png b1.png

图片宽扩展为原来的2倍,高缩小为原来的一半

magick convert b.png -resize 200x50%  b7.png
magick convert b.png -resize 200%x50%  b8.png

 宽调整为100,高按原来图片宽高比例跟着调整

convert -resize 100 b.png  b15.png

高调整为200,宽按原来图片宽高比例跟着调整

convert -resize x200 b.png  b16.png

4、移除图片内嵌的所有配置文件

magick convert -strip 1.jpg

5、裁剪图片

crop参数可以把一副图像分成若干块大小一样的图片

magick img1.jpg -crop 500x500 dest.jpg

例如,原图片尺寸为1920×1200,所以可以分割出12块图片,注意如果尺寸不是目标图片的整数倍,那么右边缘和下边缘的一部分图片就用实际尺寸

在原始图像上裁剪一张指定尺寸的小图

magick img1.jpg -crop 600x450+300+600 dest.jpg

600×450是宽乘高,+300+600是横纵坐标

6、图片取反

magick convert a.jpg -negate canny.jpg

7、压缩图片

将图片质量降为原来的10%(即压缩掉了90%),取值范围1 ( 最低的图像质量和最高压缩率) 到100 ( 最高的图像质量和最低压缩率),默认值根据输出格式有75、92、100,选项适用于JPEG / MIFF / PNG.

magick convert -quality 80 1.jpg 2.jpg

实例:生成缩略图:

-resize,定义输出的缩略图尺寸;-quality 70,降低缩略图的质量为70%;-strip:让缩略图移除图片内嵌的所有配置文件,注释等信息,以减小文件大小。

magick convert  -resize 100x200 -quality 70 -strip  1.jpg 2.jpg

8、给图片加边框

设置边框颜色为蓝色(也可以用rgb(0,0,255)或者rgb(0%,0%,100%)代替),宽的边框和高的边框分别为宽的5%、高的5%,也就是说,图片的高和宽都增大了10%

 

magick 1.jpg -bordercolor blue -border 5% 2.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 3 edge.jpg
magick convert a.jpg -colors 2 color.jpg 

减少为2种颜色,这些选项也可以一起使用。

10、边缘检测

magick convert a.jpg -canny 1 canny.jpg

使用canny算法,带粗粒度参数。

图像取反的话就很好看了:

magick convert a.jpg -canny 1 -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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/154702.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 我为什么放弃Go语言

    我为什么放弃Go语言我为什么放弃Go语言?有好几次,当我想起来的时候,总是会问自己:这个决定是正确的吗?是明智和理性的吗?其实我一直在认真思考这个问题。开门见山地说,我当初放弃Go语言,就是因为两个“不爽”:第一,对Go语言本身不爽;第二,对Go语言社区里的某些人不爽。毫无疑问,这是非常主观的结论,但是我有足够详实的客观的论据。

  • android jsonarray数组转jsonobject异常_Android开发将List转化为JsonArray和JsonObject[通俗易懂]

    android jsonarray数组转jsonobject异常_Android开发将List转化为JsonArray和JsonObject[通俗易懂]释放双眼,带上耳机,听听看~!客户端需要将List转化为JsonArray和JsonObject的方法:首先,List中的Object的属性需要是public:classPerson{publicStringname;publicStringsex;publicintage;}下面假设有ListpersonList=newArrayList();中已经装载好了数据:JSON…

  • 五种MATLAB画圆方式程序「建议收藏」

    五种MATLAB画圆方式程序「建议收藏」clear,clc%方法一:使用隐函数的方法来绘制.holdonezplot(‘x^2+y^2-8′)%方法二:转换成参数函数来绘制图形.symsxytx=2*sin(t);y=2*cos(t);%程序如下:t=0:pi/100:2*pi;x=2*sin(t);y=2*cos(t);plot(x,y,’r’)%方法三:转换成匿名函数来绘制图形.t1=0:pi/100:2*pi;x1=@(tt)2*sin(tt)+1;y1=@(tt)2*cos(tt)+2;..

  • 内核NFS-V4部署服务,挂载,ACL使用

    内核NFS-V4部署服务,挂载,ACL使用

  • java静态代理实现_静态注册和动态注册的优缺点

    java静态代理实现_静态注册和动态注册的优缺点思考:以常见的增删改查为例,在执行增删改的时候我们需要开启事务,执行完成后需要提交事务假如说你Service里有100个增删改的方法,那这100个方法里除了你自己真正需要处理的业务逻辑外,每个方法都还需要去关注开启事务,提交事务这些动作。那有没有稍微好点的办法解决呢?于是就出现了代理模式的概念,那什么是代理模式呢?1、什么是代理模式简单来说:代理就是对目标方法进行增强。什么意思呢?…

    2022年10月17日
  • Python wxPython基本教程「建议收藏」

    Python wxPython基本教程「建议收藏」PythonwxPython在资源上比较小,而且官方文档也不好找,wxPython在python2.x和python3.x安装上有区别:以下为python3.x安装为例:1.网上下载whl文件安装:路径:https://wxpython.org/Phoenix/snapshot-builds/文件名解释:wxPython_Phoenix-3.0.3.dev2812+b3485d4-c…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号