分享

GraphicsMagick+im4java 图片处理

 hmtomyang 2015-12-07

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

详细如下:

在windows上安装ImageMagick:

download 地址:http://ftp./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:///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:///projects/im4java/?source=directory

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

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

测试代码如下:

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



  1. /** 
  2.      *  
  3.      * @param picPath 图片路径 
  4.      * @param drawPicPath draw后的路径 
  5.      * @param width draw后的宽度 
  6.      * @param height draw后的高度 
  7.      * @throws IOException 
  8.      * @throws InterruptedException 
  9.      * @throws IM4JavaException 
  10.      */  
  11.     public static void drawImg(String picPath,String drawPicPath,int width, int height) throws IOException, InterruptedException, IM4JavaException{  
  12.         IMOperation op = new IMOperation();  
  13.         op.addImage();  
  14.         op.resize(width, height);  
  15.         op.font("Arial").fill("red").draw("text 100,100 www.taobao.com");    
  16.         op.quality(85d);  
  17.         op.addImage();  
  18.         //IM4JAVA是同时支持ImageMagick和GraphicsMagick的,如果为true则使用GM,如果为false支持IM。  
  19.         ConvertCmd cmd = new ConvertCmd(true);  
  20.         String osName = System.getProperty("os.name").toLowerCase();      
  21.         if(osName.indexOf("win")>=0) {  //linux下不要设置此值,不然会报错  
  22.             cmd.setSearchPath("E://Program Files//GraphicsMagick-1.3.18-Q8");   
  23.            }  
  24.         cmd.setErrorConsumer(StandardStream.STDERR);  
  25.         cmd.run(op, picPath , drawPicPath);  
  26.     }  
  27.       
  28.     /** 
  29.      *  
  30.      * @param args 
  31.      */  
  32.     public static void main(String args[]){  
  33.         try {  
  34.             drawImg("D://tester.jpg""D://testerTwo.jpg"300,400);  
  35.         } catch (Exception e) {  
  36.             e.printStackTrace();  
  37.         }  
  38.     }  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约