`
lqwforever
  • 浏览: 33176 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

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 分支出来的,但是现在他变得更稳定和优秀。

安装
  • tar -xvf GraphicsMagick-1.3.12.tar
  • ./configure --without-prel --enable-shared --disable-openmp
  • make
  • make install

示例:GraphicsMagick+im4java压缩图片
/**
	 * 先缩放,后居中切割图片
	 * @param srcPath 源图路径
	 * @param desPath 目标图保存路径
	 * @param rectw 待切割在宽度
	 * @param recth 待切割在高度
	 * @throws IM4JavaException 
	 * @throws InterruptedException 
	 * @throws IOException 
	 */
public static void cropImageCenter(String srcPath, String desPath, int rectw, int recth) throws IOException, InterruptedException, IM4JavaException{
	IMOperation op = new IMOperation();
		
	op.addImage();
	op.resize(rectw, recth, '^').gravity("center").extent(rectw, recth);
	op.addImage();

	ConvertCmd convert = new ConvertCmd(true);
	convert.run(op, srcPath, desPath);
}

问题
        如果是windows环境安装则需要设置path环境配置,如D:\Program Files\GraphicsMagick-1.3.12-Q16;(此为GraphicsMagick的安装目录),各种版本官网下载

        报错信息“gm convert: No decode delegate for this image format (abc.jpg)”系图片库缺失所致
引用
http://qing.weibo.com/1838939461/6d9bfd4533000j33.html
./configure结果

GraphicsMagick is configured as follows. Please verify that this
configuration matches your expectations.

Host system type : x86_64-unknown-linux-gnu
Build system type : x86_64-unknown-linux-gnu

Option            Configure option              Configured value
-----------------------------------------------------------------
Shared libraries  --enable-shared=no            no
Static libraries  --enable-static=yes           yes
GNU ld            --with-gnu-ld=yes             yes
Quantum depth     --with-quantum-depth=8        8

Delegate Configuration:
BZLIB             --with-bzlib=yes              no
DPS               --with-dps=yes                no
FlashPIX          --with-fpx=no                 no
FreeType 2.0      --with-ttf=yes                no
Ghostscript       None                          gs (unknown)
Ghostscript fonts --with-gs-font-dir=default    none
Ghostscript lib   --with-gslib=no               no
JBIG              --with-jbig=yes               no
JPEG v1           --with-jpeg=yes               no (需安装 jpeg delegate library)
JPEG-2000         --with-jp2=yes                no
LCMS              --with-lcms=yes               no
Magick++          --with-magick-plus-plus=yes   yes
PERL              --with-perl=no                no
PNG               --with-png=yes                no(需安装 png delegate library)
TIFF              --with-tiff=yes               no
TRIO              --with-trio=yes               no
Windows fonts     --with-windows-font-dir=      none
WMF               --with-wmf=yes                no
X11               --with-x=                     no
XML               --with-xml=yes                no
ZLIB              --with-zlib=yes               yes
make
sudo make install
Delegate Library安装

JPEG delegate library
> gm convert 470f1bb8c5a98.jpg -resize 100x100 out.jpg
gm convert: No decode delegate for this image format (470f1bb8c5a98.jpg).
官方建议:This exception indicates that an external delegate library or its headers were not available when ImageMagick was built. To add support for the image format, download and install the requisite delegate library and its header files and reconfigure, rebuild, and reinstall ImageMagick. As an example, lets add support for the JPEG image format. First we install the JPEG RPMS:
原因是没有安装jpeg的包,这个可以在之前configure的结果中看出来,此时GraphicsMagick需要重新configure及build。
1)在GraphicsMagick官方网站提供的delegates下载页面中找到jpeg的包:libjpeg-6b.tar.gz。
2)安装jpeg delegate library: ./configure -> make -> sudo make install
3)重新安装GraphicsMagick (configure时会发现jpeg已安装)
   不重装会报错:org.im4java.core.CommandException: java.io.IOException: Cannot run program "gm": java.io.IOException: error=2, No such file or directory
PNG delegate library
gm convert: No decode delegate for this image format (ben3.png).
1)在sourceforge下载libpng-1.4.7.tar.gz  (libpng-1.5.2.tar.gz 版本装上后,GraphicsMagick 在make时会报一个‘去引用’的错,原因未知)
2)安装png delegate library:./configure -> make -> sudo make install
3)重新安装GraphicsMagick (configure时会发现png已安装)
注: 由于之前安装过一次libpng-1.5.2,rm /usr/local/lib/libpng*,在重新安装了1.4.7后,仍有错误:gm: error while loading shared libraries: libpng14.so.14: cannot open shared object file: No such file or directory.
运行sudo ldconfig进行自动清理。

资料
IM4JAVA+GraphicsMagick处理网站图片:http://javantsky.iteye.com/blog/747807
关于GraphicsMagick+im4java的研究心得:http://yunduxiaocheng-gmail-com.iteye.com/blog/919457
GraphicsMagick+im4java图片处理方法:http://www.beiqiu.com/article/106.html
GraphicsMagick官网:http://www.graphicsmagick.org/index.html
GraphicsMagick官网delegates下载页面:ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/delegates/
分享到:
评论

相关推荐

    GraphicsMagick-1.3.40安装包

    GraphicsMagick是一款强大的开源图像处理工具,用于读取、转换和写入多种图像格式。它提供了命令行界面,使得在各种脚本环境中处理图像变得简单。这个安装包是GraphicsMagick的1.3.40版本,包含了适用于不同操作系统...

    GraphicsMagick-1.3.33.zip

    GraphicsMagick是一个强大的开源图像处理工具,用于读取、转换和写入多种图像格式。它在许多操作系统上都能运行,包括Windows、Linux和Mac OS X等。GraphicsMagick源自ImageMagick项目,但在某些方面提供了更快的...

    GraphicsMagick-1.3.25-Q8-win64-dll Windows 64位安装版

    GraphicsMagick是一款强大的开源图像处理工具,它支持多种操作系统,包括Windows、Linux和macOS等。这个"GraphicsMagick-1.3.25-Q8-win64-dll Windows 64位安装版"是专为64位Windows系统设计的版本,提供了图形库和...

    GraphicsMagick在Linux环境的安装

    GraphicsMagick是一款强大的开源图像处理工具,它支持各种图像格式,并提供了一系列命令行工具供用户进行图像处理。在Linux环境中安装GraphicsMagick是一项常见的任务,尤其对于开发者和系统管理员来说,它能帮助...

    GraphicsMagick-1.3.12-Q16-windows-dll.exe

    GraphicsMagick是一个短小精悍的的图片处理工具和库集合。对于Java开发者来说,常用的图片处理工具有3个,JDK自带的图片处理库,ImageMagick,GraphicsMagick。JDK自带的图片处理库,虽稳定简单,性能却比较差;...

    使用GraphicsMagick处理图片含Demo

    GraphicsMagick是一款强大的开源图像处理工具,它支持各种图像格式,并提供了一系列的命令行工具,可用于执行复杂的图像操作,如添加水印、合成图片、图片转换以及多种图像处理任务。在本文中,我们将深入探讨如何...

    nginx-lua-GraphicsMagick

    **Nginx-Lua-GraphicsMagick:搭建高效图片处理服务** 在当今互联网时代,图片是网站内容的重要组成部分,无论是社交媒体、电子商务还是个人博客,都需要处理大量的图片。为了提高图片处理效率并减轻服务器负担,...

    GraphicsMagick+im4java.pdf

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

    GraphicsMagick-1.3.35-win64

    GraphicsMagick是一个强大的开源图像处理工具,适用于多种操作系统,包括Windows、Linux和macOS等。在Windows平台上,GraphicsMagick提供了预编译的版本,如"GraphicsMagick-1.3.35-win64",这是一个64位版本,确保...

    GraphicsMagick-1.3.31.tar.gz

    GraphicsMagick是一款强大的开源图像处理工具,用于读取、转换和写入多种图像格式。它源自ImageMagick项目,但经过优化,具有更快的执行速度和更小的内存占用。GraphicsMagick 1.3.31是这个版本库的一个特定发布,...

    GraphicsMagick-1.3.30 for Linux

    GraphicsMagick是一款强大的开源图像处理工具,广泛应用于Linux操作系统中。它支持多种图像格式,包括常见的JPEG、PNG、GIF、BMP等,同时也能够处理SVG矢量图形。标题中的"GraphicsMagick-1.3.30 for Linux"表明这是...

    GraphicsMagick-1.3.25-Q16-win32-dll.exe

    GraphicsMagick是一个强大的开源图像处理工具,用于读取、转换和写入多种图像格式。它在许多方面类似于著名的ImageMagick,但具有更高的性能和稳定性。这个特定的版本,"GraphicsMagick-1.3.25-Q16-win32-dll.exe",...

    GraphicsMagick-jpeg-png

    GraphicsMagick是一款强大的开源图像处理工具,它支持各种图像格式的读取、写入和转换。在某些情况下,当我们尝试使用GraphicsMagick处理JPEG或PNG格式的图片时,可能会遇到不支持的问题。这时,"GraphicsMagick-...

    使用Tengine+Lua+GraphicsMagick实现图片自动裁剪缩放

    "使用Tengine+Lua+GraphicsMagick实现图片自动裁剪缩放" 在互联网快速发展的今天,图片数量的增长对网站的性能和用户体验产生了很大的影响。为了解决图片数量的增长带来的问题,我们需要实现图片的自动裁剪和缩放,...

    GraphicsMagick图片截取软件全套及相应的demo.rar

    GraphicsMagick是一款强大的开源图像处理工具,它支持多种图片格式,并提供了丰富的命令行接口来执行各种图像操作,如转换、裁剪、缩放、旋转、颜色调整等。在这个"GraphicsMagick图片截取软件全套及相应的demo.rar...

    GraphicsMagick-1.3.18-Q8.zip

    标题“GraphicsMagick-1.3.18-Q8.zip”指的是GraphicsMagick的一个特定版本,1.3.18,Q8表示它是一个8位量子版本,这意味着它处理颜色精度为8位每通道。GraphicsMagick是一个强大的命令行图像处理工具,允许用户进行...

    缩略图OpenResty(Nginx)+Lua+GraphicsMagick

    OpenResty(Nginx+Lua)结合GraphicsMagick的解决方案,提供了一种强大的方法来实现这个目标。让我们深入探讨这个话题。 首先,OpenResty是一个基于Nginx Web服务器的扩展平台,它集成了LuaJIT,允许开发者用Lua...

    nginx-lua-fastdfs-GraphicsMagick-master的配置

    而`GraphicsMagick`则是一个强大的图像处理库,可以用于图片的转换、裁剪、缩放等操作。现在我们来深入探讨一下`nginx-lua-fastdfs-GraphicsMagick`的集成配置及其工作原理。 首先,`nginx-lua`模块允许我们在`...

Global site tag (gtag.js) - Google Analytics