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

详细如下:

在windows上安装ImageMagick:

关于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

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();

}

}

作者:tangpengtao 发表于2013-6-30 20:24:41 原文链接

阅读:57 评论:0 查看评论

graphicsmagick im4java,GraphicsMagick+im4java 图片处理相关推荐

  1. IM4Java + GraphicsMagick 实现高清图片剪裁处理

    2019独角兽企业重金招聘Python工程师标准>>> 简单介绍 GraphicsMagick是ImageMagick的一个分支,相对于ImageMagick而言,TA处理速度更快, ...

  2. im4java 水印_app后端设计(13)--IM4JAVA+GraphicsMagick实现中文水印

    在app的后台中,有时候为了标示版权,需要给图片加上水印. 在liunx中,IM4JAVA+GraphicsMagick是个高效处理图片的方案,图片的裁剪是使用了这个技术方案,为了减少不必要的开发成本 ...

  3. im4java profile_GraphicsMagick+im4java

    im4java是ImageMagick的另一个Java开源接口.与JMagick不同之处在于im4java只是生成与ImageMagick相对应的命令行,然后将生成的命令行传至选中的IM-comman ...

  4. im4java+GraphicsMagick 的问题

    1.convert.exe: non-conforming drawing primitive definition `' @ error/draw.c/RenderMVGContent/3901. ...

  5. ImageMagick高清压缩图片-GraphicsMagick+im4java

    之前有写过imageMagick压缩图片的文章,但是那篇文章中用到的是jmagick. JMagick是一个开源API,利用JNI(Java Native Interface)技术实现了对ImageM ...

  6. 服务器搭建:3.1、openresty图片压缩之GraphicsMagick

    2019独角兽企业重金招聘Python工程师标准>>> 服务器环境 CentOS6 版本 openresty   1.7.10.2   下载地址:https://openresty. ...

  7. GraphicsMagick创建空白图片

    发现网上大多数都是使用GraphicsMagick处理已有的图片,使用GraphicsMagick从无到有的暂时木有,刚找到,分享一下: 命令: gm convert -size 1024x768 x ...

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

    软件准备 Tengine 官网:http://tengine.taobao.org/ $ wget http://tengine.taobao.org/download/tengine-2.2.0.t ...

  9. Java使用ImageMagick+Im4Java裁剪图片

    一.背景 BufferedImage是将图片整个加载到内存中的,而图片又比较大,可能有多个线程在转,所以会有内存溢出的问题.因而使用ImageMagick+Im4Java去裁剪图片 二.需求 将图片裁 ...

最新文章

  1. Microsoft Operations Management Suite 集成 SCO
  2. hadoop slaves文件_hadoop:分布式集群参数master节点的配置!
  3. 消息队列软件产品大比拼
  4. 智慧城市:解构成渝城市群一体化
  5. Phyton自定义包导入。
  6. GIT项目管理工具(part1)--简介及概念
  7. Codeforces Round #585 (Div. 2) F. Radio Stations 2-sat + 神仙建模
  8. 跳跃表(Skip list)原理与java实现
  9. q7goodies事例_Java 8 Friday Goodies:本地交易范围
  10. php 鼠标点击图片放大,鼠标移入放大图片预览效果实现
  11. pcb外观维修_「维修案例」泰克AFG3021函数任意波形发生器故障维修
  12. 关于字节对齐以及内存占用
  13. android之phonegap入门
  14. OpenStack(1)
  15. cvs数据导入工具 oracle_oracle数据库的导入导出
  16. DS1302时钟模块简单介绍
  17. JanusGraph快速入门
  18. Unity Shader 伽马校正详解
  19. 如何使用Burp suite抓取Fiddler转发的流量包
  20. springboot实战派PDF文档

热门文章

  1. android应用框架与原理之应用框架
  2. 根据DLL创建LIB输出库的方法
  3. vue - 父子组件通信之$emit传多个参数
  4. 简单实现vue验证码60秒倒计时功能
  5. Convolutional Neural Networks for Sentence Classification-学习笔记
  6. windows 10 家庭版 无法打开 gpedit.msc 解决方法
  7. vue2.0 watch的注意事项
  8. vue定义一个全局价格处理函数
  9. Emmet使用-----HTML
  10. 三维重建:SLAM的粒度和工程化问题