简介:用于读、写、处理图片文件,支持89种格式的图片文件,利用imageMagick可以根据web应用程序动态生成图片,也可以将一个或者一组图片改变大小、旋转、锐化、减色、增加特效等操作,并对操作结果进行保存(可以设置保存格式)。ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布。

ImageMagick命令:http://wenku.baidu.com/view/078062b069dc5022aaea007f.html

各种语言接口:(见http://www.imagemagick.org/script/api.php)

Ada:G2F C:MagickWand 和MagickCore Ch:ChMagick COM+:ImageMagickObject C++:Magick++Java:JMagick和Im4java

开源中国社区中源码查看:http://www.oschina.net/code/explore/ImageMagick-6.6.6-6

使用方法:首先要安装ImageMagick这个工具,安装好这个工具后,再下载im4java包放到项目lib目录里就行了。

ImageMagick java 接口(im4java api):http://im4java.sourceforge.net/api/ (如果进不了就从http://www.imagemagick.org/script/api.php =>java=>im4java 进入)

im4java源码下载:http://sourceforge.jp/projects/sfnet_im4java/downloads/im4java-1.3.2/im4java-1.3.2-src.tar.bz2/

[java] view plain copy print?

public classImageTools {/**

* ImageMagick的路径*/

public static String imageMagickPath = null;static{/**

*

* 获取ImageMagick的路径*/Properties prop= newPropertiesFile().getPropertiesFile();//linux下不要设置此值,不然会报错

imageMagickPath = prop.getProperty("imageMagickPath");

}/**

*

* 根据坐标裁剪图片

*

* @param srcPath 要裁剪图片的路径

* @param newPath 裁剪图片后的路径

* @param x 起始横坐标

* @param y 起始纵坐标

* @param x1 结束横坐标

* @param y1 结束纵坐标*/

public static void cutImage(String srcPath, String newPath, int x, int y, int x1, inty1) throws Exception {int width = x1 -x;int height = y1 -y;

IMOperation op= newIMOperation();

op.addImage(srcPath);/**

* width: 裁剪的宽度

* height: 裁剪的高度

* x: 裁剪的横坐标

* y: 裁剪的挫坐标*/op.crop(width, height, x, y);

op.addImage(newPath);

ConvertCmd convert= newConvertCmd();//linux下不要设置此值,不然会报错

convert.setSearchPath(imageMagickPath);

convert.run(op);

}/**

*

* 根据尺寸缩放图片

* @param width 缩放后的图片宽度

* @param height 缩放后的图片高度

* @param srcPath 源图片路径

* @param newPath 缩放后图片的路径*/

public static void cutImage(int width, intheight, String srcPath, String newPath) throws Exception {

IMOperation op= newIMOperation();

op.addImage(srcPath);

op.resize(width, height);

op.addImage(newPath);

ConvertCmd convert= newConvertCmd();//linux下不要设置此值,不然会报错

convert.setSearchPath(imageMagickPath);

convert.run(op);

}/**

* 根据宽度缩放图片

*

* @param width 缩放后的图片宽度

* @param srcPath 源图片路径

* @param newPath 缩放后图片的路径*/

public static void cutImage(intwidth, String srcPath, String newPath) throws Exception {

IMOperation op= newIMOperation();

op.addImage(srcPath);

op.resize(width,null);

op.addImage(newPath);

ConvertCmd convert= newConvertCmd();//linux下不要设置此值,不然会报错

convert.setSearchPath(imageMagickPath);

convert.run(op);

}/**

* 给图片加水印

* @param srcPath 源图片路径*/

public static voidaddImgText(String srcPath) throws Exception {

IMOperation op= newIMOperation();

op.font("宋体").gravity("southeast").pointsize(18).fill("#BCBFC8")

.draw("text 5,5 juziku.com");

op.addImage();

op.addImage();

ConvertCmd convert= newConvertCmd();//linux下不要设置此值,不然会报错

convert.setSearchPath(imageMagickPath);

convert.run(op, srcPath, srcPath);

}public static voidmain(String[] args) throws Exception {//cutImage("D:\\test.jpg", "D:\\new.jpg", 98, 48, 370,320);//cutImage(200,300, "/home/1.jpg", "/home/2.jpg");

addImgText("//home//1.jpg");

}

}

注意事项:如果是在windows下运行,则需要配置ImageMagick的路径(现在很多安装程序都不需要设置,已经自动帮你设置好了):

在环境变量path中添加(C:\Program Files\ImageMagick-6.7.5-Q16;)

或者

[java] view plain copy print?

public staticString imageMagickPath;

Properties prop= newPropertiesFile().getPropertiesFile();

imageMagickPath= prop.getProperty("imageMagickPath");

ConvertCmd convert= newConvertCmd();

convert.setSearchPath(imageMagickPath);

在config.properties文件里了,内容如下所示: imageMagickPath=C:\\Program Files\\ImageMagick-6.7.5-Q16;

如果是在Linux平台下,千万不需要配置,设置了会报错。

wand java源码_ImageMagick使用for java(im4java)相关推荐

  1. 讲解java源码_Java学习之Java源码讲解

    关于Java中源码的学习,是不少同学头疼的知识点.本文整理了JAVA源码学习的八大要点,分别是基础知识.面向对象.异常处理.集合.综合类核心代码.JAVA8新特性.Input/Output和Java小 ...

  2. 拼图java源码_拼图游戏Java版源代码JAVA游戏源码下载

    Java版的拼图游戏,玩家能够自己更换图片,只需你把它分成块,另外它是以成绩=1000-时间(秒)-移动步数*10来决意你是否输了,按F1键起头游戏,Y健预览图片. 拼图游戏Java版源代码 (1 f ...

  3. 在线报名竞赛网站java源码_我用Java写出了一个QQ!可在线聊天(附源码)~

    来源:blog.csdn.net/weixin_44048140 正文如下: 一. 功能实现 1.修改功能(密码.昵称.个性签名) 2.添加好友.删除好友 3.单聊功能 4.判断好友是否在线 二. 模 ...

  4. java源码推荐_基于java的推荐系统实现源代码

    [实例简介] 常用推荐算法java实现~涉及多种相似度计算,比如cosine相似度,欧氏距离等~ (recommand algirithm ) [实例截图] [核心代码] RecommendSyste ...

  5. ckfinder java 源码,关于不再找java使用CKFinder的原因

    CEFinder是CKEditor的文件浏览器.目前还没有给出java版本.对于那些幻想仅通过改几个url就可以使用FCKEditor的java版的朋友,我只能说,清醒一下吧--=.= 原因如下: F ...

  6. ckfinder java 源码_Ckeditor与Ckfinder(java)整合实现富媒体内容编辑(支持文件上传)

    先来看一下最终的效果图 一.编辑器界面 二.上传图片界面 一.安装包下载,我使用的安装包是ckfinder_java_2.3.zip和ckeditor_3.6.3.zip,这两个文件可以分别到 htt ...

  7. Java源码下载和阅读(JDK1.8/Java 11)

    文章目录 1.openjdk的Java源码 2. Oracle 的Java源码 1.openjdk的Java源码 JDK10的源码可以直接从openjdk上下载.下载地址:openjdk-10_src ...

  8. java源码 - ReentrantReadWriteLock介绍

    开篇  ReentrantReadWriteLock是Lock的另一种实现方式,我们已经知道了ReentrantLock是一个排他锁,同一时间只允许一个线程访问,而ReentrantReadWrite ...

  9. java源码 1.8_Java源码下载和阅读(JDK1.8/Java 11)

    文章目录 1.openjdk的Java源码 2. Oracle 的Java源码 1.openjdk的Java源码 JDK10的源码可以直接从openjdk上下载.下载地址:openjdk-10_src ...

最新文章

  1. we-rich 小程序渲染富文本js库
  2. 写程序时,经常要重载OnPaint,定位很麻烦,现在有个简单办法
  3. 如何利用Featue对特定的文档库或列表添加listviewtoolbar上的button
  4. wireshark怎么抓包、wireshark抓包详细图文教程,简单介绍(及wireshark与wireshark legacy差别 )
  5. linux read函数_浅谈Linux内核IO体系之磁盘IO
  6. 随机森林和GBDT的几个核心问题
  7. Python 实现数据结构中的单链表,循环单链表,双链表
  8. Citrix XenApp 6.5客户端自动下载(无需从官网下载)
  9. 管理类综合199资料整理
  10. 游戏帐号被盗,但是杀毒软件没有发现病毒?DNS挟持盗号原理剖析
  11. 2021年4月中国旅游行业网络关注度分析报告
  12. Excel/WPS如何查找重复数据
  13. 量子纠缠计算机里的灵魂意识,量子纠缠理论告诉我们,灵魂真的存在于你我身体?...
  14. foobar2000提取音频
  15. 跨境电商必看:amazon账号关联因素
  16. Oracle用户、身份、数据类型、和mysql的区别
  17. 【系统】ThrottleStop软件使用教程入门级,游戏+工作两种解决cpu过热方案
  18. 实现共享要修改哪些计算机策略,局域网共享组策略怎么设置
  19. Stacked Hourglass Networks简析
  20. 解决Chrome自带翻译功能无法使用问题

热门文章

  1. 【译】.NET Core 是 .NET 的未来
  2. CodeFirst 的编程方式
  3. SAS (Serial Attached SCSI) 技术详解
  4. 将图片资源文件整合到DLL文件中
  5. Spark源码阅读02-Spark核心原理之容错及HA(高可用)
  6. ios模拟器快捷键操作
  7. 使用 Ant 自动生成项目构建版本
  8. [分享]关于windows下的小技巧
  9. [武道资料]《菲律宾短棍-单棍》(Edgar Sulite Lameco Escrima Single Stick)
  10. 一个想法--开发与业务,我们互相依赖