graphicsmagick linux是被称为图像处理界的瑞士军刀,主要用来读取和生成超过90种图像格式,支持jpg、gif、png、tiff、pnm等超过88种图片格式,可以运行在windows、linux、mac os等平台。此次小编为大家带来的是graphicsmagick linux版,需要的朋友可以下载!
graphicsmagick linux安装教程
安装之前,因为是图片处理,所以需要系统中安装了libpng和libjpeg的开发包,否则的话不会安装这两种文件的支持,GraphicsMagick就没法读取jpeg和png图片。如果之前已安装过imageMagick和jmagick,且可以正常生成图片的则直接进入GraphicsMagick的安装。
注意:下面所有的安装步骤都需要在root用户下完成。
1. 首先使用rpm命令查看libpng和libjpeg是否已安装
rpm –qa | grep libjpeg 如果已安装会出现如下图片所示:
rpm –qa | grep libpng 如果已安装会出现如下图片所示:
2. 如果需要安装libpng和libjpeg则使用如下安装步骤:
a. 安装libjpeg开发包
卸载:
rpm -e --nodeps libjpeg-6.2.0-879.10
rpm -e --nodeps libjpeg-32bit-6.2.0-879.10
安装:
rpm -ivh libjpeg8-8.0.2-3.1.x86_64.rpm
rpm -ivh libjpeg8-devel-8.0.2-3.1.x86_64.rpm
b. 安装libpng开发包
卸载:
rpm -e --nodeps libpng12-0-32bit-1.2.31-5.12.1
rpm -e --nodeps libpng12-0-32bit-1.2.31-5.12.1
安装:
rpm -ivh libpng-1.2.5-190.1.x86_64.rpm
rpm -ivh libpng-devel-1.2.5-190.1.x86_64.rpm
问题:rpm -ivh libpng-devel-1.2.5-190.1.x86_64.rpm
error: Failed dependencies:
zlib-devel is needed by libpng-devel-1.2.5-190.1.x86_64
解决办法:
请先安装zlib开发包后再安装libpng-devel-1.2.5-190.1.x86_64.rpm
c. 安装zlib开发包
注:在卸载zlib时一定不要将zlib-1.2.3-106.34给卸载了,否则系统将无法运行。
卸载:
rpm -e --nodeps zlib-32bit-1.2.3-106.34
安装:
rpm -U zlib-1.2.3-134.1.x86_64.rpm
rpm -ivh zlib-devel-1.2.3-134.1.x86_64.rpm
GraphicsMagick的安装步骤:
1、 解压GraphicsMagick-1.3.12.tar.gz包
# tar -xvzf GraphicsMagick-1.3.12.tar.gz
# cd GraphicsMagick-1.3.12
2、 使用 configure 来进行自动的配置、build和安装
# ./configure '--prefix=/usr/local/GraphicsMagick-1.3.12' '--exec-prefix=/usr/local/GraphicsMagick-1.3.12' '--bindir=/usr/local/GraphicsMagick-1.3.12/bin' '--sbindir=/usr/local/GraphicsMagick-1.3.12/sbin' '--sysconfdir=/usr/local/GraphicsMagick-1.3.12/etc' '--datadir=/usr/local/GraphicsMagick-1.3.12/share' '--includedir=/usr/local/GraphicsMagick-1.3.12/include' '--libdir=/usr/local/GraphicsMagick-1.3.12/lib' '--libexecdir=/usr/local/GraphicsMagick-1.3.12/libexec' '--localstatedir=/usr/local/GraphicsMagick-1.3.12/var' '--sharedstatedir=/usr/local/GraphicsMagick-1.3.12/share/com' '--mandir=/usr/local/GraphicsMagick-1.3.12/share/man' '--infodir=/usr/local/GraphicsMagick-1.3.12/share/info' '--enable-libtool-verbose' '--with-included-ltdl' '--enable-shared' '--disable-static' '--with-modules' '--with-frozenpaths' '--without-perl' '--without-magick-plus-plus' '--with-quantum-depth=8' --enable-symbol-prefix
如果报错:
1)如果configure提示“configure: error: libltdl is required for modules build”,则yum install libtool-ltdl libtool-ltdl-devel
在执行完上述命令后会有一段输出,可以查看GraphicsMagick支持的图片格式,在Configured value下为yes的表示为支持,PNG、JPEG v1和ZLIB必须为yes,若不为yes将按照前提中所写的进行操作,然后再重复执行上述命令,一直到全部支持为止,否则将无法正常进行截图操作,如下图所示:
接下来就是安装
# make
# make install
3、 设置环境变量
# vi /etc/profile
在/etc/profile文件的最后添加如下配置:
export JAVA_HOME=/usr/java/java
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH
export JAVA_HOME PATH CLASSPATH
export GMAGICK_HOME="/usr/local/GraphicsMagick-1.3.12"
export PATH="$GMAGICK_HOME/bin:$PATH"
LD_LIBRARY_PATH=$GMAGICK_HOME/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
注意:修改完后执行 ldconfig 让设置立即生效,并logout,然后重新登录。
至此就配置完毕了。
4、 使用命令查看GraphicsMagick所支持的图片格式:
# gm convert -list formats
如果列表中如果显示PNG、JPEG、GIF等则表示已支持图片转换。
5、 测试安装是否正常,使用如下命令:
gm convert -resize 100x80^ -gravity Center -crop 100x80+0+0 sample.jpg thumb.jpg
命令说明:gravity 表示中心坐标,可选值为 Center , NorthWest(左上), NorthEast(右上), SouthWest(左下), SouthEast(右下) ,由Center参数即由中心开始向两边裁剪,+指定x轴向y轴向的偏移量。sample.jpg/png为要裁剪的图片且必须存在,thumb.jpg/png为裁剪后生成的新图片,可以拷贝生成的文件到本地后查看,能正常显示,则说明所有安装均正常。
6、 给zxin10用户赋graphicsMagick安装目录的访问权限
上述安装步骤都是在root用户下进行的,所以在安装完成之后需要给zxin10用户赋访问权限,否则在zxin10用户下截取图片,将会报错org.im4java.core.CommandException: java.io.IOException: Cannot run program "gm": java.io.IOException: error=13, Permission denied。
使用root用户登录,然后执行如下命令:
# chown -R zxin10:users /usr/local/GraphicsMagick-1.3.12
使用教程
0. 显示图像文件详细信息
gm identify a.jpg
1.更改当前目录下*.jpg的尺寸大小,并保存于目录.thumb里面
gm mogrify -output-directory .thumbs -resize 320x200 *.jpg
2. 将三幅图像和并为一副图像
gm montage -mode concatenate -tile 3x1 image1.ppm image2.ppm image3.ppm concatenated.miff
3. 显示图像
gm display 'vid:*.jpg'
4. 格式转换
gm convert a.bmp a.jpg
gm convert a.bmp a.pdf(转换为pdf)
5. 调整图像dpi和大小
gm convert -density 288 -geometry 25% image.gif image.gif
(缩小为原先的1/4,并且dpi为288)
gm convert -resize 640x480 image.gif image.gif
(转换为640x480的图像)
6. 在图像上添加文字
gm convert -font Arial -fill blue -pointsize 18 -draw "text 10,10 'your text here'" test.tif test.png
7. 从gif文件中抽取第一帧
gm convert "Image.gif[0]" first.gif
8. 建立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
(对每一帧手动指定延时)
9. 截屏
gm import a.jpg
用鼠标点击所要截取的窗口,或者选择截屏区域,保存为a.jpg
gm import -frame 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 input.jpg -thumbnail "10000@ -background gray -gravity center -extent 100x100 output_5.jpg
生成的图片大小是:100x100,这次保证了大小和比例,其中的10000就是100x100的乘积,同时在填充和裁剪之间做了一个平衡。
常用命令介绍
convert:转换图像格式和大小,模糊,裁剪,驱除污点,抖动,临近,图片上画图片,加入新图片,生成缩略图等。
identify:描述一个或较多图像文件的格式和特性。
mogrify:按规定尺寸***一个图像,模糊,裁剪,抖动等。Mogrify改写最初的图像文件然后写到一个不同的图像文件。
composite:根据一个图片或多个图片组合生成图片。
montage:创建一些分开的要素图像。在含有要素图像任意的装饰图片,如边框、结构、图片名称等。
compare:在算术上和视觉上评估不同的图片***其它的改造图片。
display:如果你拥有一个X server的系统,它可以按次序的显示图片
animate:利用X server显示动画图片
import:在X server或任何可见的窗口上输出图片文件。 你可以捕获单一窗口,整个的荧屏或任何荧屏的矩形部分。
conjure:解释执行 MSL (Magick Scripting Language) 写的脚本。