GraphicsMagick图像处理系统使用方法
- 显示图像文件详细信息
gm identify a.jpg
gm identify -verbose filename.jpg 详细信息
1.更改当前目录下*.jpg的尺寸大小,并保存于目录.thumb里面
gm mogrify -output-directory .thumbs -resize 320x200 *.jpg
- 将三幅图像和并为一副图像
gm montage -mode concatenate -tile 3x1 image1.ppm image2.ppm image3.ppm concatenated.miff
将目录下面所有头像转为100x100拼接上下左右留5像素
gm montage -geometry 100x100+5+5 -bordercolor red *.jpg out.jpg
以1为背景付上2然后输出
gm montage -texture 1.jpg 2.jpg out.jpg
吧图片命名并拼接
gm montage -geometry 100x100+2+2 -bordercolor black -label “111” 1.jpg -label “222” 2.jpg out.jpg
gm montage +frame +shadow +label -tile 2x2 -geometry 100x100+2+2 1.jpg 2.jpg 3.jpg out.jpg
- 显示图像
gm display ‘vid:*.jpg’
- 【linux运维|GraphicsMagick命令行使用示例】格式转换
gm convert a.bmp a.jpg
gm convert a.bmp a.pdf(转换为pdf)
- 调整图像dpi和大小
gm convert -density 288 -geometry 25% image.gif image.gif
(缩小为原先的1/4,并且dpi为288)
(转换为640x480的图像)
- 在图像上添加文字
gm convert -font Arial -fill blue -pointsize 18 -draw “text 10,10 ‘your text here’” test.tif test.png
加文字水印,指定字体、字体大小、颜色、位置
gm convert -font ArialBold -pointsize 45 -fill red -draw “text 100,100 www.saysth.com” input.jpg output.jpg
加图片水印至右下角,透明度50%
gm composite -gravity southeast -dissolve 50 watermark.png input.jpg output.jpg
加图片水印至制定位置,透明度50%
gm composite -geometry +50+50 -dissolve 50 watermark.png input.jpg output.jpg
- 从gif文件中抽取第一帧
gm convert “Image.gif[0]” first.gif
- 建立gif图像
gm convert -delay 20 frame*.gif animation.gif
gm convert -loop 50 frame*.gif animation.gif
(让动画循环50次)
(对每一帧手动指定延时)
- 截屏
gm import a.jpg
用鼠标点击所要截取的窗口,或者选择截屏区域,保存为a.jpg
保留窗口的边框
GraphicsMagick常用管理命令 查看版本后安装情况:gm identify -version
结果::打印出信息
识别图片:gm identify /Users/zhaorai/Pictures/照片/100CANON-1/IMG_4108.JPG
结果:/Users/zhaorai/Pictures/照片/100CANON-1/IMG_4108.JPG JPEG 3648x2736+0+0 DirectClass 8-bit 2.5M 0.000u 0:01
识别图片(高级):gm identify -verbose /Users/zhaorai/Desktop/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 -quality 100% f150ceb33dc7.jpg -thumbnail 401x401 -background gray -gravity center -extent 401x401 test1.jpg
裁剪、填充相结合 (缺点:最差的方法)
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”);
推荐阅读
- LUA|单片机脚本语言移植lua到stm32MDK
- pem pfx 是什么文件
- linux时间管理
- cocos2d-x各种UI控件操作
- Mac下Lua Sublime Text2 开发环境搭建
- 如何编译nodemcu的源码()
- 编程语言|关于NodeMCU的内存测试
- nodeMcu烧录
- ESP8266|NodeMCU介绍
- 【公网远程】网页控制nodemcu的LED