最新动态
ImageMagick 的安装及使用(总结)
2025-01-02 19:45

转载于https://www.cnblogs.com/Renyi-Fan/p/13399876.html

 

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

 

安装imagemagick.exe之后,加入到系统环境中,python中使用的话:ani.save('sin.gif', writer='imagemagick', fps=30)

 

 

 

转自或参考:ImageMagick 的安装及使用
https://www.cnblogs.com/lfri/p/11601211.html

 

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

 

这里以Windows为例

 官方网站:http://www.imagemagick.org/script/index.php。

 

 

 使用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的子命令使用,如:

1、转换格式

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

 (原来jpg比png小不少

2、合成gif

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

3、调整图片大小

按比例改变

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

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

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

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

5、裁剪图片

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

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

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

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

6、图片取反

7、压缩图片

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

实例:生成缩略图:

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

8、给图片加边框

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

 

9、滤镜

-monochrome没有相关的配置选项;但是-charcoal需要设置一个相关因子,1左右能实现类似炭笔绘画的效果。

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

10、边缘检测

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

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

 

11: IM命令行的简单使用:

打开CMD命令行窗口,进入图片所在目录(我的测试图片在桌面的test文件夹里)

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

上面的命令是在Linux下的写法,命令足够长,必须跨多行写入,Linux使用的是,Windows使用的是^,另外Windows下的命令行中对于括号不需要转义,则命令格式如下:

上面的命令对图片纹理进行了丰富和色彩进行了加深。

将当前目录下所有jpg图片合成一个gif动画,我合成了个静态图片

后面还有好多的命令,详细信息请参考官方网站说明。

 

这里只说一下Java相关的工具。Java可调用接口有两种,JMagick和Im4java。JMagick为ImageMagick提供了面向对象的Java接口。Im4java是ImageMagick命令行的纯java接口。

1、JMagick

JMagick是一个开源API,利用JNI(Java Native Interface)技术实现了对ImageMagick API的Java访问接口,因此也将比纯Java实现的图片操作函数在速度上要快。JMagick只实现了ImageMagic API的一部分功能,它的发行遵循LGPL协议。

目前JMagick只有32位的,所以只能选择32位的ImageMagick,并且版本支持很低,目前只支持到ImageMagick-6.3.9-0,只能使用32位的JDK,64位进程不能够调用32位的dll,想在64位的系统上用jmagick不仅要将jdk换成32位,而且jmagick.dll也得放到SysWOW64下面,不能放到System32中。

具体使用可参考我的另一篇博客:

2、Im4java

Im4java是ImageMagick的另一个Java开源接口。与JMagick不同之处在于Im4java只是生成与ImageMagick相对应的命令行,然后将生成的命令行传至选中的IM-command(使用java.lang.ProcessBuilder.start()实现)来执行相应的操作。它支持大部分ImageMagick命令,可以针对不同组的图片多次复用同一个命令行。

Im4java只是封装ImageMagick的命令。所以不需要依赖dll,也不存在64位系统调用32位dll的问题,而且Im4java支持GraphicsMagick,GraphicsMagick是ImageMagick的分支。且Flickr和Etsy都要使用它。相对ImageMagick,GraphicsMagick更稳定,消耗资源更少。最重要的是不依赖dll环境。

 

参考链接:

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

    以上就是本篇文章【ImageMagick 的安装及使用(总结)】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/quote/18138.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站https://sicmodule.kub2b.com/mobile/,查看更多   
发表评论
0评