zoukankan      html  css  js  c++  java
  • (转)GraphicsMagick、命令行使用示例

    GraphicsMagick是从 ImageMagick 5.5.2 分支出来的,但是现在他变得更稳定和优秀,GM更小更容易安装、GM更有效率、GM的手册非常丰富GraphicsMagick的命令与ImageMagick基本是一样的。

    [ convert | identify | mogrify | composite | montage | compare | display | animate | import | conjure ]

    convert:转换图像格式和大小,模糊,裁剪,驱除污点,抖动,临近,图片上画图片,加入新图片,生成缩略图等。 
    identify:描述一个或较多图像文件的格式和特性。 
    mogrify:按规定尺寸*一个图像,模糊,裁剪,抖动等。Mogrify改写最初的图像文件然后写到一个不同的图像文件。 
    composite:根据一个图片或多个图片组合生成图片。 
    montage:创建一些分开的要素图像。在含有要素图像任意的装饰图片,如边框、结构、图片名称等。 
    compare:在算术上和视觉上评估不同的图片*其它的改造图片。 
    display:如果你拥有一个X server的系统,它可以按次序的显示图片 
    animate:利用X server显示动画图片 
    import:在X server或任何可见的窗口上输出图片文件。 你可以捕获单一窗口,整个的荧屏或任何荧屏的矩形部分。 
    conjure:解释执行 MSL (Magick Scripting Language) 写的脚本。

    GraphicsMagick图像处理系统使用方法

    1. 显示图像文件详细信息 
      gm identify a.jpg

    2. 更改当前目录下*.jpg的尺寸大小,并保存于目录.thumb里面 
      gm mogrify -output-directory .thumbs -resize 320x200 *.jpg

    3. 将三幅图像和并为一副图像 
      gm montage -mode concatenate -tile 3x1 image1.ppm image2.ppm image3.ppm concatenated.miff

    4. 显示图像 
      gm display ‘vid:*.jpg’

    5. 格式转换 
      gm convert a.bmp a.jpg 
      gm convert a.bmp a.pdf(转换为pdf)

    6. 调整图像dpi和大小 
      gm convert -density 288 -geometry 25% image.gif image.gif 
      (缩小为原先的1/4,并且dpi为288)

    gm convert -resize 640x480 image.gif image.gif 
    (转换为640x480的图像)

    1. 在图像上添加文字 
      gm convert -font Arial -fill blue -pointsize 18 -draw “text 10,10 ‘your text here’” test.tif test.png

    2. 从gif文件中抽取第一帧 
      gm convert “Image.gif[0]” first.gif

    3. 建立gif图像 
      gm convert -delay 20 frame*.gif animation.gif 
      gm convert -loop 50 frame*.gif animation.gif 
      (让动画循环50次)

    gm convert -delay 20 frame1.gif -delay 10 frame2.gif -delay 5 frame3.gif animation.gif 
    (对每一帧手动指定延时)

    1. 截屏 
      gm import a.jpg 
      用鼠标点击所要截取的窗口,或者选择截屏区域,保存为a.jpg

    gm import -frame a.jpg 
    保留窗口的边框

    GraphicsMagick常用管理命令

    • 查看版本后安装情况:gm identify -version

    结果::打印出信息

    • 识别图片:gm identify

    如: gm identify 100CANON-1/IMG_4108.JPG 
    结果:IMG_4108.JPG JPEG 3648x2736+0+0 DirectClass 8-bit 2.5M 0.000u 0:01

    • 识别图片(高级):gm identify -verbose

    如:gm identify -verbose 4.png 
    结果:打印出很多信息。

    GraphicsMagick缩放比例的精准控制

    原始图片是input.jpg,尺寸:160x120

    • 只缩小不放大 
      gm convert input.jpg -resize “500x500>” output_1.jpg 
      加了>,表示只有当图片的宽与高,大于给定的宽与高时,才进行“缩小”操作。 
      生成的图片大小是:160x120,未进行操作 
      如果不加>,会导致图片被比等放大。

    • 等比缩图 (缺点:产生白边) 
      gm convert input.jpg -thumbnail “100x100” output_1.jpg 
      生成的图片大小是:100x75

    • 非等比缩图,按给定的参数缩图(缺点:长宽比会变化)

    gm convert input.jpg -thumbnail “100x100!” output_2.jpg 
    生成的图片大小是:100x100

    • 裁剪后保证等比缩图 (缺点:裁剪了图片的一部分)

    gm convert input.jpg -thumbnail “100x100^” -gravity center -extent 100x100 output_3.jpg 
    生成的图片大小是:100x100,还保证了比例。不过图片经过了裁剪,剪了图片左右两边才达到1:1

    • 填充后保证等比缩图 (缺点:要填充颜色,和第一种方法基本一样)

    gm convert input.jpg -thumbnail “100x100” -background gray -gravity center -extent 100x100 output_4.jpg 
    生成的图片大小是:100x100,还保证了比例,同时没有对图片进行任何裁剪,缺失的部分按指定颜色进行填充。

    • 裁剪、填充相结合 (缺点:最差的方法)

    gm convert input.jpg -thumbnail “10000@ -background gray -gravity center -extent 100x100 output_5.jpg 
    生成的图片大小是:100x100,这次保证了大小和比例,其中的10000就是100x100的乘积,同时在填充和裁剪之间做了一个平衡。

    • 位深度32 转为24

    IE6,7,8不支持显示“位深度32”的图片,但IE9、火狐、谷歌浏览器就可以显示。 
    使用GM,把“位深度32”的图片转换为“位深度24”的图片 
    输入图片zzz.jpg就是“位深度32”的图片,输出图片 zzz_out.jpg就是“位深度24”的图片 
    gm convert -resize 100x100 -colorspace RGB zzz.jpg zzz_out.jpg 
    转完后,图片的颜色会有轻微变化。

    在浏览器上选择图片裁剪的坐标

    ================================= 
    如果想让用户手动裁剪头片的话,就是在浏览器上选择图片裁剪的坐标,imgAreaSelect是个好选择。 
    imgAreaSelect is a jQuery plugin for selecting a rectangular area of an image. 
    http://odyniec.net/projects/imgareaselect/

    Jmagick锐化图片功能


    ImageInfo info = new ImageInfo(filepath+”pics.jpg”); 
    MagickImage image = new MagickImage(info); 
    MagickImage sharpened = image.sharpenImage(1.0, 5.0); 
    sharpened.setFileName(filepath+”sharpened.jpg”); 
    sharpened.writeImage(info); 
    主要是函数sharpenImage(double arg0, double arg1); 
    建议arg0=1.0 arg1=5.0 
    arg0为半径 arg1为阙值 
    这样做的目的: 
    明显会使图片变得清晰好看。

    JMagick 常用技巧


    ImageMagick中使用+profile “*” 删除图片中不存储附加信息.

    JMagick中,使用MagickImage类上的profileImage(“*”, null)方法,删除图片中不存储附加信息.

    删除图片中的ICC,ICM, IPTC,8bim等信息

    ImageMagick中使用-quality控制图片的品质,

    JMagick中,使用ImageInfo类上的setQuality(80)方法,控制图片的品质

    在Web应用(Resin,Tomcat)使用ImageMagick


    如果要在Web应用(Resin,Tomcat)使用ImageMagick,

    需要再运行时加入参数: -Djmagick.systemclassloader=no

    或者在程序中写入:System.setProperty(“jmagick.systemclassloader”, “no”);

    转载----方便查阅

  • 相关阅读:
    物联网与边缘计算的融合
    在【自我认知】大学,你可能永远毕不了业
    Spring Security实现短信验证码登录
    线上课程
    【技术人成长】公众号
    大数据是阿猫阿狗都能玩的吗
    机器不能代替你思考
    如何缓解需求沟通中的鸡同鸭讲
    如何成为一个更渊博的技术人
    招聘季,聊聊那些古怪的候选人
  • 原文地址:https://www.cnblogs.com/zwp06/p/9336301.html
Copyright © 2011-2022 走看看