图片工具GraphicsMagick的下载安装配置使用
Posted 孔子-说
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图片工具GraphicsMagick的下载安装配置使用相关的知识,希望对你有一定的参考价值。
目录
4.4 更改当前目录下*.jpg的尺寸大小,并保存于目录.thumb里面
1、概述
GraphicsMagick是一个短小精悍的图片处理工具和库集合。用来处理图像的读取、写入和操作,支持超过88中图像格式,包括重要的DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM、PhotoCD、SVG和TIFF。GraphicsMagick 是从 ImageMagick 5.5.2分支出来的。
- 对于Java开发者来说,常用的图片处理工具有3个,JDK自带的图片处理库,ImageMagick,GraphicsMagick。JDK自带的图片处理库,虽稳定简单,性能却比较差;ImageMagick是目前最流行的图片处理工具,它的功能非常丰富;GraphicsMagick的功能略逊于ImageMagick,但是它的效率更强悍,但大多数情况下,GM的功能已经足够使用了。
功能特色:
- (1)使用OpenMP进行多线程图片处理,增强了通过扩展CPU提高处理能力。
- (2)支持大图片的处理,并且已经做过GB级别的图像处理实验。
- (3)能够动态的生成图片,特别适用于互联网的应用。
支持格式:
- 超过88种图像格式,包括重要的DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF。
支持平台:
- Linux、Mac、Windows。
使用方式:
- GaphicsMagick支持命令行的模式,同时也支持JAVA、C、C++、Perl、php、Tcl、 Ruby等的调用。
2、下载
2.1 进入官网地址
打开浏览器,输入官方地址http://www.graphicsmagick.org/,或百度搜索GraphicsMagick,点击官网链接进入(一般在搜索结果的第一条)。点击首页的Current Release后面的dowload release下载链接进入files页面。
或者点击首页上方的Download进入下载页面,翻到页面最下方的Download Sites,点击SourceForge file download链接进入files页面。
第1种方式:
第2种方式:
2.2 进入版本列表页面
点击上一步骤的"dowload release"链接之后会进入到如下图所示的界面,我们点击"graphicsmagick"进入版本列表页面。
2.3 选择合适的版本,进入下载页面
在版本列表页面,点击自己需要的版本号进入下载页面,这里我选择的是1.3.35版本。
2.4 下载安装包
在版本下载页面可以看到有不同类型的安装包可供我们下载,这里我选择GraphicsMagick-1.3.35.tar.gz进行下载,你也可以根据你的需要下载你想要下载的安装包。
- 下载列表上方的绿色按钮是windows版本的下载链接。
3、安装
在下载windows版本时,可以看到文件名中有Q16的字样,关于版本中的Q8,Q16的说明如下:
- Q8表示: 8-bits per pixel quantum
- Q16表示:16-bits per pixel quantum
现在数码相机照的相片,每一种颜色就是8位深,所以建议选Q8。而使用16-bit per pixel quantums在处理图片时比8-bit慢15%至50%,并须要更多的内存。
windows下载安装包后直接安装即可,linux安装步骤如下:
3.1 解压
linux安装包复制到自己指定的目录,执行解压缩命令。
tar -zxvf GraphicsMagick-1.3.35.tar.gz
3.2 编译安装
cd GraphicsMagick-1.3.35
bash ./configure --prefix=~/.local --enable-shared=true
make
make install
3.3 验证是否安装成功
- widows下,打开dos窗口,输入gm version,输出如下提示说明安装成功。
- linux下,输入gm version,输出如下提示说明安装成功。
[root@70-37-fw2 GraphicsMagick-1.3.35]# gm version
GraphicsMagick 1.3.35 2020-02-23 Q8 http://www.GraphicsMagick.org/
Copyright (C) 2002-2020 GraphicsMagick Group.
Additional copyrights and licenses apply to this software.
See http://www.GraphicsMagick.org/www/Copyright.html for details.
Feature Support:
Native Thread Safe yes
Large Files (> 32 bit) yes
Large Memory (> 32 bit) yes
BZIP no
DPS no
FlashPix no
FreeType yes
Ghostscript (Library) no
JBIG no
JPEG-2000 no
JPEG yes
Little CMS no
Loadable Modules no
Solaris mtmalloc no
Google perftools tcmalloc no
OpenMP yes (201107 "3.1")
PNG yes
TIFF yes
TRIO no
Solaris umem no
WebP no
WMF no
X11 no
XML no
ZLIB yes
Host type: x86_64-pc-linux-gnu
Configured using the command:
./configure '--enable-shared'
Final Build Parameters:
CC = gcc -std=gnu99
CFLAGS = -fopenmp -g -O2 -Wall -pthread
CPPFLAGS = -I/usr/include/freetype2
CXX = g++
CXXFLAGS = -pthread
LDFLAGS =
LIBS = -ltiff -lfreetype -ljpeg -lpng15 -lz -lm -lpthread
3.4 设置环境变量
- 使用vi或vim打开配置文件,vim /etc/profile 在最后添加如下配置
- 安装yum命令,centos 系统输入命令:yum -y install vim* 。ubuntu 系统输入命令:sudo apt-get install vim-gtk 。
export GMAGICK_HOME=/home/local/GraphicsMagick-1.3.25
export PATH=$GMAGICK_HOME/bin:$PATH
LD_LIBRARY_PATH=$GMAGICK_HOME/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
- 生效配置,使用如下命令
source /etc/profile
- 重启服务器,使用gm convert -list formats命令查看支持的图片转换格式,如下,可以看到支持JPEG,JPG,PNG,GIF等多种图片格式转换。
[root@70-37-fw2 GraphicsMagick-1.3.35]# gm convert -list formats
Format L Mode Description
--------------------------------------------------------------------------------
3FR S r-- Hasselblad Photo RAW
8BIM P rw- Photoshop resource format
8BIMTEXT P rw- Photoshop resource text format
8BIMWTEXT P rw- Photoshop resource wide text format
APP1 P rw- Raw application information
APP1JPEG P rw- Raw JPEG binary data
ART S rw- PFS: 1st Publisher
ARW S r-- Sony Alpha DSLR RAW
AVS U rw+ AVS X image
B S rw+ Raw blue samples
BIGTIFF P rw+ Tagged Image File Format (64-bit offsets)
BMP P rw- Microsoft Windows bitmap image
BMP2 P -w- Microsoft Windows bitmap image v2
BMP3 P -w- Microsoft Windows bitmap image v3
BRF S -w- BRF ASCII Braille format
C S rw+ Raw cyan samples
CACHE U --- Magick Persistent Cache image format
CALS S rw- Continuous Acquisition and Life-cycle Support Type 1 image
Specified in MIL-R-28002 and MIL-PRF-28002
CAPTION P r-- Image caption
CIN S rw- Cineon Image File
CMYK S rw+ Raw cyan, magenta, yellow, and black samples
CMYKA S rw+ Raw cyan, magenta, yellow, black, and opacity samples
CR2 S r-- Canon Photo RAW
CRW S r-- Canon Photo RAW
CUR S r-- Microsoft Cursor Icon
CUT S r-- DR Halo
DCM S r-- Digital Imaging and Communications in Medicine image
See http://medical.nema.org/ for information on DICOM.
DCR S r-- Kodak Photo RAW
DCX S rw+ ZSoft IBM PC multi-page Paintbrush
DNG S r-- Adobe Digital Negative
DPX P rw- SMPTE 268M-2003 (DPX 2.0)
See http://www.smtpe.org/ for information on DPX.
EPDF P rw- Encapsulated Portable Document Format
EPI P rw- Adobe Encapsulated PostScript Interchange format
EPS P rw- Adobe Encapsulated PostScript
EPS2 P -w- Adobe Level II Encapsulated PostScript
EPS3 P -w+ Adobe Level III Encapsulated PostScript
EPSF P rw- Adobe Encapsulated PostScript
EPSI P rw- Adobe Encapsulated PostScript Interchange format
EPT P rw- Adobe Encapsulated PostScript with MS-DOS TIFF preview
EPT2 P rw- Adobe Level II Encapsulated PostScript with MS-DOS TIFF preview
EPT3 P rw- Adobe Level III Encapsulated PostScript with MS-DOS TIFF preview
ERF S r-- Epson RAW Format
EXIF P rw- Exif digital camera binary data
FAX P rw+ Group 3 FAX (Not TIFF Group3 FAX!)
FITS S rw- Flexible Image Transport System
FRACTAL S r-- Plasma fractal image
G S rw+ Raw green samples
GIF P rw+ CompuServe graphics interchange format (version 89a)
GIF87 P rw- CompuServe graphics interchange format (version 87a)
GRADIENT P r-- Gradual passing from one shade to another
GRAY S rw+ Raw gray samples
GRAYA S rw+ Raw gray samples + alpha
HISTOGRAM P -w- Histogram of the image
HRZ S r-- HRZ: Slow scan TV
HTML S -w- Hypertext Markup Language and a client-side image map
ICB S rw+ Truevision Targa image
ICC P rw- ICC Color Profile
ICM P rw- ICC Color Profile
ICO S r-- Microsoft Icon
ICON S r-- Microsoft Icon
IDENTITY P r-- Hald CLUT identity image
IMAGE P r-- GraphicsMagick Embedded Image
INFO S -w+ Image descriptive information and statistics
IPTC P rw- IPTC Newsphoto
IPTCTEXT P rw- IPTC Newsphoto text format
IPTCWTEXT P rw- IPTC Newsphoto text format
ISOBRL S -w- ISO/TR 11548-1 format
ISOBRL6 S -w- ISO/TR 11548-1 format 6dot
JNG S rw- JPEG Network Graphics (libpng 1.5.13, zlib 1.2.7)
See http://www.libpng.org/pub/mng/ for information on JNG.
JNX S r-- JNX: Garmin tile storage format
JPEG P rw- Joint Photographic Experts Group JFIF format (IJG JPEG 62)
JPG P rw- Joint Photographic Experts Group JFIF format (IJG JPEG 62)
K S rw+ Raw black samples
K25 S r-- Kodak Photo RAW
KDC S r-- Kodak Photo RAW
LABEL P r-- Image label
M S rw+ Raw magenta samples
M2V S -w+ MPEG Video Stream
MAC S r-- Mac Paint
MAP U rw- Colormap intensities and indices
MAT S rw+ MATLAB Level 4.0-7.0 image formats
MATTE S -w+ MATTE raw opacity format
MEF S r-- Mamiya Photo RAW
MIFF P rw+ Magick Image File Format (GraphicsMagick 1.3.35, Zlib 1.2.7)
MNG S rw+ Multiple-image Network Graphics (libpng 1.5.13, zlib 1.2.7)
See http://www.libpng.org/pub/mng/ for information on MNG.
MONO S rw- Bi-level bitmap in least-significant-byte first order
MPC U rw+ Magick Persistent Cache image format
MPEG S -w+ MPEG Video Stream
MPG S -w+ MPEG Video Stream
MRW S r-- Minolta Photo RAW
MTV U rw+ MTV Raytracing image format
MVG S rw- Magick Vector Graphics
NEF S r-- Nikon Electronic Format
NULL P rw- Constant image of uniform color
O S rw+ Raw opacity samples
ORF S r-- Olympus Photo RAW
OTB S rw- On-the-air bitmap
P7 S rw+ Xv thumbnail format
PAL S rw- 16bit/pixel interleaved YUV
PALM U r-- Palm pixmap
PAM P rw+ Portable Arbitrary Map format
PBM P rw+ Portable bitmap format (black/white)
PCD S rw- Photo CD
PCDS S rw- Photo CD
PCL S -w+ Page Control Language
PCT S rw- Apple Macintosh QuickDraw/PICT
PCX S rw- ZSoft IBM PC Paintbrush
PDB U rw+ Palm Database ImageViewer Format
PDF P rw+ Portable Document Format
PEF S r-- Pentax Electronic File
PFA P r-- Postscript Type 1 font (ASCII) (FreeType 2.8.0)
PFB P r-- Postscript Type 1 font (binary) (FreeType 2.8.0)
PGM P rw+ Portable graymap format (gray scale)
PICON S rw- Personal Icon
PICT S rw- Apple Macintosh QuickDraw/PICT
PIX S r-- Alias/Wavefront RLE image format
PLASMA S r-- Plasma fractal image
PNG P rw- Portable Network Graphics (libpng 1.5.13, zlib 1.2.7)
See http://www.libpng.org/ for information on PNG..
PNG00 P rw- PNG that inherits type and depth from original (libpng 1.5.13, zlib 1.2.7)
PNG24 P rw- 24-bit RGB PNG, opaque only (libpng 1.5.13, zlib 1.2.7)
PNG32 P rw- 32-bit RGBA PNG, semitransparency OK (libpng 1.5.13, zlib 1.2.7)
PNG48 P rw- opaque or binary transparent 48-bit RGB (libpng 1.5.13, zlib 1.2.7)
PNG64 P rw- opaque or transparent 64-bit RGBA (libpng 1.5.13, zlib 1.2.7)
PNG8 P rw- 8-bit indexed PNG, binary transparency only (libpng 1.5.13, zlib 1.2.7)
PNM P rw+ Portable anymap
PPM P rw+ Portable pixmap format (color)
PREVIEW S -w- Show a preview an image enhancement, effect, or f/x
PS P rw+ Adobe PostScript
PS2 P -w+ Adobe Level II PostScript
PS3 P -w+ Adobe Level III PostScript
PTIF S rw+ Pyramid encoded TIFF
PWP U r-- Seattle Film Works
R S rw+ Raw red samples
RAF S r-- Fuji Photo RAW
RAS S rw+ SUN Rasterfile
RGB S rw+ Raw red, green, and blue samples
RGBA S rw+ Raw red, green, blue, and matte samples
RLA U r-- Alias/Wavefront image
RLE U r-- Utah Run length encoded image
SCT U r-- Scitex HandShake
SFW U r-- Seattle Film Works
SGI S rw- Irix RGB image
SHTML S -w- Hypertext Markup Language and a client-side image map
SR2 S r-- Sony Photo RAW
SRF S r-- Sony Photo RAW
STEGANO S r-- Steganographic image
SUN S rw+ SUN Rasterfile
SVG S --- Scalable Vector Graphics
SVGZ S --- Scalable Vector Graphics (ZIP compressed)
TEXT S rw+ ASCII Text
TGA S rw+ Truevision Targa image
TIFF P rw+ Tagged Image File Format (LIBTIFF, Version 4.0.3)
TILE P r-- Tile image with a texture
Use the syntax "-size WIDTHxHEIGHT TILE:imagename" to tile the
specified tile image over a canvas image of size WIDTHxHEIGHT.
TIM S r-- PSX TIM
TOPOL S r-- TOPOL X Image
TTF P r-- TrueType font (FreeType 2.8.0)
TXT S rw+ ASCII Text
UBRL S -w- Unicode Text format
UBRL6 S -w- Unicode Text format 6dot
UIL U -w- X-Motif UIL table
UYVY S rw- 16bit/pixel interleaved YUV
VDA S rw+ Truevision Targa image
VICAR S rw- VICAR rasterfile format
VID S rw+ Visual Image Directory
VIFF S rw+ Khoros Visualization image
VST S rw+ Truevision Targa image
WBMP S rw- Wireless Bitmap (level 0) image
WPG U r-- Word Perfect Graphics
X3F S r-- Foveon X3 (Sigma/Polaroid) RAW
XBM S rw- X Windows system bitmap (black/white)
XC P r-- Constant image uniform color
XCF S r-- GIMP image
XMP P rw- Adobe XML metadata
XPM S rw- X Windows system pixmap (color)
XV S rw+ Khoros Visualization image
Y S rw+ Raw yellow samples
YUV S rw- CCIR 601 4:1:1 or 4:2:2 (8-bit only)
Meaning of 'L': P=Primary, S=Stable, U=Unstable
- 可以使用如下命令裁剪图片,
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为要裁剪的图片且必须存在,thumb.jpg/png为裁剪后生成的新图片,可以拷贝生成的文件到本地后查看,能正常显示,则说明所有安装均正常。
4、常用操作命令
ImageMagick、GraphicsMagick的命令概览,以下说明的是使用命令行的方式。
[ 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) 写的脚本。
4.1 查看图片信息
# 显示图像文件详细信息
gm identify input.jpg
# 识别图片(高级),可以打印出很多信息
gm identify -verbose input.jpg
4.2 生成缩略图
# 原始图片是input.jpg,尺寸:160x120
# 等比缩图 (缺点:产生白边)
gm convert input.jpg -thumbnail 100x100 output.jpg
--生成的图片大小是:100x75
# 只缩小不放大
gm convert input.jpg -resize “500x500>” output_1.jpg
加了>,表示只有当图片的宽与高,大于给定的宽与高时,才进行“缩小”操作。
生成的图片大小是:160x120,未进行操作
如果不加>,会导致图片被等比放大。
# 非等比缩图,按给定的参数缩图(缺点:长宽比会变化)
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
-- 转完后,图片的颜色会有轻微变化。
4.3 添加水印
gm composite -geometry 100x100% -gravity SouthEast logo.png input.jpg output.jpg
4.4 更改当前目录下*.jpg的尺寸大小,并保存于目录.thumb里面
gm mogrify -output-directory .thumbs -resize 320x200 *.jpg
4.5 将三幅图像和并为一副图像
gm montage -mode concatenate -tile 3x1 image1.ppm image2.ppm image3.ppm concatenated.miff
4.6 显示图像
gm display ‘vid:*.jpg’
4.7 格式转换
gm convert a.bmp a.jpg
gm convert a.bmp a.pdf(转换为pdf)
4.8 调整图像dpi和大小
gm convert -density 288 -geometry 25% image.gif image.gif
(缩小为原先的1/4,并且dpi为288)
gm convert -resize 640x480 image.gif image.gif
(转换为640x480的图像)
4.9 在图像上添加文字
gm convert -font Arial -fill blue -pointsize 18 -draw “text 10,10 ‘your text here’” test.tif test.png
4.10 从gif文件中抽取第一帧
gm convert “Image.gif[0]” first.gif
4.11 建立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
(对每一帧手动指定延时)
4.12 截屏
gm import a.jpg
用鼠标点击所要截取的窗口,或者选择截屏区域,保存为a.jpg
gm import -frame a.jpg
保留窗口的边框
5、获取不到“gm”执行文件
执行命令或代码时,提示cannot run program "gm": error=2, No such file or directory这样的错误时,有两种解决方案:
5.1 代码中设置gm路径
ConvertCmd convert = new ConvertCmd(true);
convert.setSearchPath("/home/local/GraphicsMagick-1.3.25/bin");
5.2 将gm拷贝到/usr/bin目录下(推荐做法)
cp /home/local/GraphicsMagick-1.3.25/bin/gm /usr/bin/
以上是关于图片工具GraphicsMagick的下载安装配置使用的主要内容,如果未能解决你的问题,请参考以下文章
GraphicsMagick +im4java高并发处理大型网站图片工具-图片剪切遮蔽水印添加之环境搭建
使用nginx+lua+GraphicsMagick实现图片自动 裁剪
验证码识别工具GraphicsMagick1.3.25和Tesseract-OCR4.0.0 Linux安装部署过程记录