zoukankan      html  css  js  c++  java
  • ImageMagick 的安装及使用(总结)

    ImageMagick 的安装及使用(总结)

    一、总结

    一句话总结:

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

    1、python中使用imagemagick?

    安装imagemagick.exe之后,加入到系统环境中,python中使用的话:ani.save('sin.gif', writer='imagemagick', fps=30)
    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib.animation as animation
    
    fig = plt.figure(figsize=(6, 6))
    ax = plt.gca()
    ax.grid()
    ln1, = ax.plot([], [], '-', lw=2)
    ln2, = ax.plot([], [], '-', color='r', lw=2)
    theta = np.linspace(0, 2*np.pi, 100)
    r_out = 1
    r_in = 0.5
    
    def init():
        ax.set_xlim(-2, 2)
        ax.set_ylim(-2, 2)
        x_out = [r_out*np.cos(theta[i]) for i in range(len(theta))]
        y_out = [r_out*np.sin(theta[i]) for i in range(len(theta))]
        ln1.set_data(x_out, y_out)
        return ln1,
    
    def update(i):
        x_in = [(r_out-r_in)*np.cos(theta[i])+r_in*np.cos(theta[j]) for j in range(len(theta))]
        y_in = [(r_out-r_in)*np.sin(theta[i])+r_in*np.sin(theta[j]) for j in range(len(theta))]
        ln2.set_data(x_in, y_in)
        return ln2,
    
    ani = animation.FuncAnimation(fig, update, range(len(theta)), init_func=init, interval=30)
    ani.save('roll.gif', writer='imagemagick', fps=100)
    
    plt.show()

    二、ImageMagick 的安装及使用

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

    一、什么是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 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

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

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

    magick img1.jpg -crop 600x450+300+600 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 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

     
    我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
    博主25岁,前端后端算法大数据人工智能都有兴趣。
    大家有啥都可以加博主联系方式(qq404006308,微信fan404006308)互相交流。工作、生活、心境,可以互相启迪。
    聊技术,交朋友,修心境,qq404006308,微信fan404006308
    26岁,真心找女朋友,非诚勿扰,微信fan404006308,qq404006308
    人工智能群:939687837

    作者相关推荐

  • 相关阅读:
    ASP.NET MVC Model元数据(三)
    ASP.NET MVC Model元数据(二)
    ASP.NET MVC Model元数据(一)
    腾讯云服务器linux centOS7.4 搭建ftp服务器 vsftpd
    腾讯云服务器linux Ubuntu操作系统搭建ftp服务器vsftpd
    linux设置禁止ping
    linux 查询管道过滤,带上标题字段
    安装php xdebug调试工具及性能分析工具webgrind for windows
    linux增加硬盘 磁盘分区格式化及挂载
    virtualBox linux操作系统centos 挂载光盘
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13399876.html
Copyright © 2011-2022 走看看