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”);

GraphicsMagick的命令行使用示例的更多相关文章

  1. ImageMagick简介、GraphicsMagick、命令行使用示例

    http://elf8848.iteye.com/blog/382528 ImageMagick资料 ------------------------------------------------- ...

  2. (转)GraphicsMagick、命令行使用示例

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

  3. mac svn命令行使用入门

    本文转载至 http://blog.sina.com.cn/s/blog_6bfa2fc10101euf6.html   mac svn命令行使用入门 1. 初始化项目 svn import /Use ...

  4. 最有用的Linux命令行使用技巧集锦

    最近在Quora上看到一个问答题目,关于在高效率Linux用户节省时间Tips.将该题目的回答进行学习总结,加上自己的一些经验,记录如下,方便自己和大家参考. 下面介绍的都是一些命令行工具,这些工具在 ...

  5. 【Linux工具】svn命令行使用实例

    引言 网上有这么多介绍 svn 使用的文章,为什么还要写?因为它们深入不浅出,平铺不分类,理论不实际,看完也记不住. 本文先介绍基本用法,后进行实例演练.不求大而全,只求熟练常用,自行用 svn he ...

  6. python命令行使用的问题

    python命令行使用的时候要注意一个陷阱,就是如果某个语句不是在>>>下执行的,而是在...下执行的,那么它可能没有执行成功. 例如如下没有成功,原因是上面有一句注释,导致没有执行 ...

  7. Linux修改权限命令chmod用法示例

    Linux公社 2020年10月13日 来自:Linux迷 网址:https://www.linuxmi.com/linux-chmod.html Linux中的Chmod命令用于更改或分配文件和目录 ...

  8. Apache Commons CLI 开发命令行工具示例

    概念说明Apache Commons CLI 简介 虽然各种人机交互技术飞速发展,但最传统的命令行模式依然被广泛应用于各个领域:从编译代码到系统管理,命令行因其简洁高效而备受宠爱.各种工具和系统都 提 ...

  9. Rsync(远程同步): linux中Rsync命令的实际示例

    rsync的 ( 远程同步 )为在Linux / Unix系统局部 拷贝和同步文件和目录远程以及一个最常用的命令. 随着rsync命令的帮助,您可以复制并在目录中远程和本地同步数据,在磁盘和网络,进行 ...

随机推荐

  1. Telerik RadGridView动态增删行及行列操作

    最近使用一直使用第三方控件Telerik,版本 2011 Q1,一直使用显示控件RadGridView,使用起来比DataGird好使, 也发现有控件问题. 1.增行 RadGridView中使用Be ...

  2. 标准输入输出 stdio 流缓冲

    **From : http://www.pixelbeat.org/programming/stdio_buffering/** 我发现找出标准流用的是什么缓冲是一件困难的事. 例如下面这个使用uni ...

  3. 【学习】如何制作手机端html模板(REM的实际应用)

    以前制作手机页面时,总是很迷茫,不知从何着手,页面也不知如何处理.会用一些百分比啊,媒体查询啊,还有就是目测了,但是各种手机端的屏幕适配是个老大难的问题,没有做到百分百兼容的.自从发现了rem这个好东 ...

  4. This application failed to start because it could not find or load the Qt platform plugin "windows" 的问题原因以及解决方案

    1. 问题原因非常简单,经过各种百度,都没有找到解决方案,在此做一个记录备用. 2.原因就在于,项目目录使用了中文路径,然后出现了这个问题. 3.我是在使用 syncfusion 下的HTML 转PD ...

  5. Python格式化字符串--format

    format格式化字符串方法相较于老版%格式方法的优点: 1.不需要理会数据类型的问题,在%方法中'%s'只能替代字符串类型. 2.单个参数可以多次输出,参数顺序可以不相同. 3.填充方式十分灵活,对 ...

  6. IIS ApplicationPoolIdentity(配置IIS讀寫網站文件)

    原创地址:http://www.cnblogs.com/jfzhu/p/4067297.html 转载请注明出处 从IIS 7.5开始,Application Pool Identity的Built- ...

  7. win10 uwp 打开文件管理器选择文件

    本文:让文件管理器选择文件,不是从文件管理器获得文件. 假如已经获得一些文件,那么如何从文件管理器选择这些文件? 使用方法很简单. 从网上拿图来说 打开文件夹自动选择所有文件 首先需要获得文件夹,因为 ...

  8. ES6-字符串的扩展-模板字符串

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. Spring事务的传播行为和隔离级别

    事物注解方式: @Transactional [一]传播行为: 使用方法:@Transactional(propagation=Propagation.REQUIRED) Require:支持当前事务 ...

  10. 不定期更新的CSS样式设置

    头像图片的样式 假设这是一个头像图片,假设展示头像的框为100*100的div,而图片尺寸为510*765,如何让图片显示成这样呢? html结构很简单: <div class="im ...