分类: Linux
CentOS6下安装GraphicsMagick过程记录

GraphicsMagick号称图像处理领域的瑞士军刀。 短小精悍的代码却提供了一个鲁棒、高效的工具和库集合,来处理图像的读取、写入和操作,支持超过88种图像格式,包括重要的DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF。

通过使用OpenMP可是利用多线程进行图片处理,增强了通过扩展CPU提高处理能力。GraphicsMagick可以再绝大多数的平台上使用,Linux、Mac、Windows都没有问题。

GraphicsMagick支持大图片的处理,并且已经做过GB级别的图像处理实验。GraphicsMagick能够动态的生成图片,特别适用于互联网的应用。可以用来处理调整尺寸、旋转、加亮、颜色调整、增加特效等方面。GaphicsMagick不仅支持命令行的模式,同时也支持C、C++、Perl、PHP、Tcl、Ruby等的调用。事实上,GraphicsMagick是从 ImageMagick 5.5.2 分支出来的,但是现在他变得更稳定和优秀。

GraphicsMagick官网:http://www.graphicsmagick.org/index.html 目前最新版本为 1.3.26

安装建议:
先解压GraphicsMagick-1.3.26.tar.gz包 ./configure 检查png与jpg的支持情况,如不支持,请安装相应的图片库之后再安装GM服务。
安装一些基础包:

yum install libtool* libpng.x86_64 libpng-devel.x86_64 libpng-static.x86_64

安装常见图片库jpeg及png
建立jpeg安装目录

mkdir /usr/local/jpeg6
mkdir /usr/local/jpeg6/bin
mkdir /usr/local/jpeg6/include
mkdir /usr/local/jpeg6/lib
mkdir /usr/local/jpeg6/man
mkdir /usr/local/jpeg6/man/man1
解压安装jpeg
tar xvf jpegsrc.v6b.tar.gz
cd jpeg-6b/
cp /usr/share/libtool/config/config.sub .
cp /usr/share/libtool/config/config.guess .
./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
make
make install

64位系统以上两个cp务必执行,否则会报错
make: ./libtool:命令未找到
make: * [jcapimin.lo] 错误 127

安装libpng库

tar xvf libpng-1.4.12.tar.gz 
cd libpng-1.4.12
./configure --prefix=/usr/local/png --enable-shared
make
make install

安装GraphicsMagick

tar xvf GraphicsMagick-1.3.26.tar.gz 
cd GraphicsMagick-1.3.26
./configure  --prefix=/usr/local/graphicsMagick CPPFLAGS='-I/usr/local/png/include -I/usr/local/jpeg6/include' LDFLAGS='-L/usr/local/png/lib -L/usr/local/jpeg6/lib' --enable-shared
make
make install

添加环境变量

vim /etc/profile
IM4JAVA_TOOLPATH=/usr/local/graphicsMagick/bin
export IM4JAVA_TOOLPATH
soure /etc/profile

运行gm --version会显示版本信息及支持那些图片库等信息:

[root@waibao_121_180 tmp]# gm -version 
GraphicsMagick 1.3.26 2017-07-04 Q8 http://www.GraphicsMagick.org/
Copyright (C) 2002-2017 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                     yes
  DPS                      no
  FlashPix                 no
  FreeType                 yes
  Ghostscript (Library)    no
  JBIG                     no
  JPEG-2000                no
  JPEG                     yes
  Little CMS               no
  Loadable Modules         no
  OpenMP                   yes (200805)
  PNG                      yes
  TIFF                     no
  TRIO                     no
  UMEM                     no
  WebP                     no
  WMF                      no
  X11                      yes
  XML                      yes
  ZLIB                     yes

Host type: x86_64-unknown-linux-gnu

Configured using the command:
  ./configure  'CPPFLAGS=-I/usr/local/png/include -I/usr/local/jpeg6/include' 'LDFLAGS=-L/usr/local/png/lib -L/usr/local/jpeg6/lib' '--enable-shared'

Final Build Parameters:
  CC       = gcc -std=gnu99
  CFLAGS   = -fopenmp -g -O2 -Wall -pthread
  CPPFLAGS = -I/usr/local/png/include -I/usr/local/jpeg6/include -I/usr/include/freetype2 -I/usr/include/libxml2
  CXX      = g++
  CXXFLAGS = -pthread
  LDFLAGS  = -L/usr/local/png/lib -L/usr/local/jpeg6/lib
  LIBS     = -lfreetype -ljpeg -lpng14 -lXext -lSM -lICE -lX11 -lbz2 -lxml2 -lz -lm -lgomp -lpthread

使用gm convert -list formats查看支持所有的图片格式:

[root@waibao_121_180 tmp]# 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
      BMP P  rw-  Microsoft Windows bitmap image
     BMP2 P  -w-  Microsoft Windows bitmap image v2
     BMP3 P  -w-  Microsoft Windows bitmap image v3
        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
      ERF S  r--  Epson RAW Format
     EXIF P  rw-  Exif digital camera binary data
      FAX P  rw+  Group 3 FAX (Not TIFF Group3 FAX!)
     FILE S  r--  Uniform Resource Locator (file://)
     FITS S  rw-  Flexible Image Transport System
  FRACTAL P  r--  Plasma fractal image
      FTP U  r--  Uniform Resource Locator (ftp://)
        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 P  -w-  Hypertext Markup Language and a client-side image map
     HTTP U  r--  Uniform Resource Locator (http://)
      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
      JNG P  rw-  JPEG Network Graphics (libpng 1.4.12, zlib 1.2.3)
            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 P  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
      MNG P  rw+  Multiple-image Network Graphics (libpng 1.4.12, zlib 1.2.3)
            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
      MSL S  rw+  Magick Scripting Language
      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  rw-  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 S  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)
      PFB P  r--  Postscript Type 1 font (binary)
      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 P  r--  Plasma fractal image
      PNG P  rw-  Portable Network Graphics (libpng 1.4.12, zlib 1.2.3)
            See http://www.libpng.org/ for information on PNG..
    PNG00 P  rw-  PNG that inherits type and depth from original (libpng 1.4.12, zlib 1.2.3)
    PNG24 P  rw-  24-bit RGB PNG, opaque only (libpng 1.4.12, zlib 1.2.3)
    PNG32 P  rw-  32-bit RGBA PNG, semitransparency OK (libpng 1.4.12, zlib 1.2.3)
    PNG48 P  rw-  opaque or binary transparent 48-bit RGB (libpng 1.4.12, zlib 1.2.3)
    PNG64 P  rw-  opaque or transparent 64-bit RGBA (libpng 1.4.12, zlib 1.2.3)
     PNG8 P  rw-  8-bit indexed PNG, binary transparency only (libpng 1.4.12, zlib 1.2.3)
      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
      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 S  r--  Utah Run length encoded image
      SCT U  r--  Scitex HandShake
      SFW U  r--  Seattle Film Works
      SGI S  rw-  Irix RGB image
    SHTML P  -w-  Hypertext Markup Language and a client-side image map
      SR2 S  r--  Sony Photo RAW
      SRF S  r--  Sony Photo RAW
  STEGANO P  r--  Steganographic image
      SUN S  rw+  SUN Rasterfile
      SVG S  r--  Scalable Vector Graphics (XML 2.7.6)
     SVGZ S  r--  Scalable Vector Graphics (ZIP compressed) (XML 2.7.6)
     TEXT S  rw+  ASCII Text
      TGA S  rw+  Truevision Targa image
     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
      TXT S  rw+  ASCII Text
      UIL S  -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 S  r--  Word Perfect Graphics
        X S  rw-  X Window System
      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
      XWD U  rw-  X Windows system window dump (color)
        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

上传图片到/tmp目录下,使用gm vonvert 压缩图片

gm convert 原图 -thumbnail '100x100' 目标文件名
gm convert tt.jpg -thumbnail '100x100' output_xxx.jpg
将tt.jpg等比缩小到100x100大小。

更多命令格式:
GraphicsMagick常用方法
显示图像文件详细信息

identify a.jpg

2.更改当前目录下*.jpg的尺寸大小,并保存于目录.thumb里面

gm mogrify -output-directory .thumbs -resize 320×200 *.jpg

将三幅图像和并为一副图像

montage -mode concatenate -tile 3×1 image1.ppm image2.ppm image3.ppm concatenated.miff

显示图像

display ‘vid:*.jpg’

格式转换

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

调整图像dpi和大小

convert -density 288 -geometry 25% image.gif image.gif

(缩小为原先的1/4,并且dpi为288)

gm convert -resize 640×480 image.gif image.gif

(转换为640×480的图像)

在图像上添加文字
convert -font Arial -fill blue -pointsize 18 -draw “text 10,10 ‘your text here'” test.tif test.png
从gif文件中抽取第一帧
convert “Image.gif[0]” first.gif
建立gif图像
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
(对每一帧手动指定延时)

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


相关博文:

发表新评论