最近团队内部分享GraphicsMagick+im4java 图片处理 就把如何安装,运行都统一整理一下。

详细如下:

在windows上安装ImageMagick:

download 地址:http://ftp.icm.edu.pl/pub/unix/graphics/GraphicsMagick/windows/

关于Q8,Q16,Q32的说明:(建议使用8,现在数码相机照的相片,每一种颜色就是8位深,3种颜色就是24位,所以选8)
支持的参数有3种,分别是 8, 16, or 32。默认值是16。
Q8表示: 8-bits per pixel quantum
Q16表示:16-bits per pixel quantum
Q32表示:32-bits per pixel quantum
使用16-bit per pixel quantums在处理图片时比8-bit慢15%至50%,并须要更多的内存。
处理一张1024x768像素的图片8-bit要使用3.6M内存,16-bit要使用7.2M内存。计算方法是: (5 * Quantum Depth * Rows * Columns) / 8

配置 环境变量加入PATH:E:\Program Files\GraphicsMagick-1.3.18-Q8(个人习惯放在E盘)

二. Linux下的安装与配置(下载时请注意 有32位系统包,有64位系统包,根据情况选择。这里是centos 64位的)
1、先查看所需的包是否安装 
rpm -q libjpeg libjpeg-devel libpng libpng-devel freetype freetype-   devel libtiff

先把一些图片补丁包安装。

download地址:http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.18/GraphicsMagick-1.3.18.tar.gz/download

解压tar zvxf GraphicsMagick-1.3.18.tar.gz
cd GraphicsMagick-1.3.18
./configure --prefix=/usr/local/GraphicsMagick --with-quantum-depth=8   --enable-share

下载 im4java

downlaod 地址:http://sourceforge.net/projects/im4java/?source=directory

im4java的思路是通过线程或者进程执行graphicsmagick的命令,它的api只是为了能生成命令,而不是调用graphicsmagick的库。

我使用的最新的jar :im4java-1.4.0-1.5.jar

测试代码如下:

IM4JAVA是同时支持ImageMagick和GraphicsMagick的,这里是bool值,如果为true则使用GM,如果为false支持IM。

/**
*
* @param picPath 图片路径
* @param drawPicPath draw后的路径
* @param width draw后的宽度
* @param height draw后的高度
* @throws IOException
* @throws InterruptedException
* @throws IM4JavaException
*/
public static void drawImg(String picPath,String drawPicPath,int width, int height) throws IOException, InterruptedException, IM4JavaException{
IMOperation op = new IMOperation();
op.addImage();
op.resize(width, height);
op.font("Arial").fill("red").draw("text 100,100 www.taobao.com");
op.quality(85d);
op.addImage();
//IM4JAVA是同时支持ImageMagick和GraphicsMagick的,如果为true则使用GM,如果为false支持IM。
ConvertCmd cmd = new ConvertCmd(true);
String osName = System.getProperty("os.name").toLowerCase();
if(osName.indexOf("win")>=0) { //linux下不要设置此值,不然会报错
cmd.setSearchPath("E://Program Files//GraphicsMagick-1.3.18-Q8");
}
cmd.setErrorConsumer(StandardStream.STDERR);
cmd.run(op, picPath , drawPicPath);
} /**
*
* @param args
*/
public static void main(String args[]){
try {
drawImg("D://tester.jpg", "D://testerTwo.jpg", 300,400);
} catch (Exception e) {
e.printStackTrace();
}
}

本文转自:http://blog.csdn.net/tangpengtao/article/details/9208047

GraphicsMagick+im4java 图片处理的更多相关文章

  1. GraphicsMagick+im4java实现高质量大图的处理

    http://www.open-open.com/lib/view/open1355754261963.html 做网站往往需要处理各种各样的图片,对于jdk自带的一套图片处理库,他的特点是稳定简单, ...

  2. GraphicsMagick +im4java高并发处理大型网站图片工具-图片剪切、遮蔽、水印添加之环境搭建

    环境: centos 6.5 GraphicsMagick 下载安装 准备环镜: 需要依赖zlib图片操作函数库 下载地址:http://www.zlib.net/ 编译安装 .tar.gz cd z ...

  3. GraphicsMagick+Im4Java在windows和linux下的配置

    GraphicsMagick介绍及安装 Im4Java包为: im4java-1.2.0.jar 直接在lib下引用即可 GraphicsMagick的安装如下: windows下: 安装:Graph ...

  4. JCrop+GraphicsMagick+Im4Java 实现图像裁减

    Im4Java的安装文档见:http://blog.csdn.net/tangpengtao/article/details/9208047 JCrop的插件:jquery.Jcrop.js jQue ...

  5. GraphicsMagick为图片添加水印

    GraphicsMagick号称图像处理领域的瑞士军刀.提供了健壮及高效的图像处理工具包和库,支持超过88种主流图片格式包括:BMP,GIF,JPEG,JPEG-2000,PNG,PDF,PNM,TI ...

  6. Tengine + Lua + GraphicsMagick 实现图片自动裁剪/缩放

    http://my.oschina.net/eduosi/blog/169606

  7. app后端设计(12)--图片的处理

    app上线后,不断接受用户的反馈,于是,反馈非常差的情况下,都会有app的改版. 一旦app的改版,都会有比较大的UI改动,一改动UI,那么图片的尺寸也就必须要改变. 在app后端设计(1)—api( ...

  8. GraphicsMagick 号称图像处理领域的瑞士军刀

    标签: librarydelegatesimage图像处理fontstiff 2012-09-13 10:15 2496人阅读 评论(0) 收藏 举报  分类: java技术(52)  简介      ...

  9. Singleton单例模式是最简单的设计模式,它的主要作用是保证在程序执行生命周期中,使用了单类模式的类仅仅能有一个实例对象存在。

                                                                                                        ...

随机推荐

  1. 安装VS2010水晶报表插件

    Visual Studio 2010默认不带水晶报表,需要安装一个水晶报表插件,首先下载此插件: http://downloads.businessobjects.com/akdlm/cr4vs201 ...

  2. 第二十三篇:在SOUI中使用LUA脚本开发界面

    像写网页一样做客户端界面可能是很多客户端开发的理想. 做好一个可以实现和用户交互的动态网页应该包含两个部分:使用html做网页的布局,使用脚本如vbscript,javascript做用户交互的逻辑. ...

  3. Effective C++ 之 Item 1: 视C++为一个语言联邦

    Effective C++ Chapter 1. 让自己习惯C++(Accustoming Yourself to C++) Item 1. 视C++为一个语言联邦(View C++ as a fed ...

  4. UED

    User Experience Design(用户体验设计),简称UED.UED是进行产品策划的主力之一,他们用自己的知识.经验.设计能力拿出设计方案. UED不只是互联网专家,还是行业专家.能够用自 ...

  5. PopupWindow响应返回键的问题

    假设情景是这样的:在一个Activity中弹出一个PopupWindow,要求在按返回键时关闭该PopupWindow. 如果该PopupWindow是无焦点的(默认情况),那么可以在Activity ...

  6. BootCDN和npm

    稳定.快速.免费的开源项目 CDN 服务 BootCDN: jQuery3 <script type="text/javascript" src="http://c ...

  7. 遭遇OutOfMemoryError

    这几天,网店系统基础架构进行了一次大的升级,升级之后例行的进行了压力测试,以前几次大的项目发布压力测试都没有任何问题,没想到这次出事故啦,而且是内存泄露? 系统运行环境:硬件:Intel(R) Xeo ...

  8. 廖雪峰js教程笔记3

    JavaScript的函数在查找变量时从自身函数定义开始,从"内"向"外"查找.如果内部函数定义了与外部函数重名的变量,则内部函数的变量将"屏蔽&qu ...

  9. poj 1651 Multiplication Puzzle (区间dp)

    题目链接:http://poj.org/problem?id=1651 Description The multiplication puzzle is played with a row of ca ...

  10. redis 的使用 ( set集合类型操作)

    set 集合类型 释义:            redis 的 set 是 string 类型的无序集合 set 元素最大可以包含(2的32次方-1)个元素 关于 set 集合类型除了基本的添加删除操 ...