wand java源码_ImageMagick使用for java(im4java)
简介:用于读、写、处理图片文件,支持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)相关推荐
- 讲解java源码_Java学习之Java源码讲解
关于Java中源码的学习,是不少同学头疼的知识点.本文整理了JAVA源码学习的八大要点,分别是基础知识.面向对象.异常处理.集合.综合类核心代码.JAVA8新特性.Input/Output和Java小 ...
- 拼图java源码_拼图游戏Java版源代码JAVA游戏源码下载
Java版的拼图游戏,玩家能够自己更换图片,只需你把它分成块,另外它是以成绩=1000-时间(秒)-移动步数*10来决意你是否输了,按F1键起头游戏,Y健预览图片. 拼图游戏Java版源代码 (1 f ...
- 在线报名竞赛网站java源码_我用Java写出了一个QQ!可在线聊天(附源码)~
来源:blog.csdn.net/weixin_44048140 正文如下: 一. 功能实现 1.修改功能(密码.昵称.个性签名) 2.添加好友.删除好友 3.单聊功能 4.判断好友是否在线 二. 模 ...
- java源码推荐_基于java的推荐系统实现源代码
[实例简介] 常用推荐算法java实现~涉及多种相似度计算,比如cosine相似度,欧氏距离等~ (recommand algirithm ) [实例截图] [核心代码] RecommendSyste ...
- ckfinder java 源码,关于不再找java使用CKFinder的原因
CEFinder是CKEditor的文件浏览器.目前还没有给出java版本.对于那些幻想仅通过改几个url就可以使用FCKEditor的java版的朋友,我只能说,清醒一下吧--=.= 原因如下: F ...
- ckfinder java 源码_Ckeditor与Ckfinder(java)整合实现富媒体内容编辑(支持文件上传)
先来看一下最终的效果图 一.编辑器界面 二.上传图片界面 一.安装包下载,我使用的安装包是ckfinder_java_2.3.zip和ckeditor_3.6.3.zip,这两个文件可以分别到 htt ...
- Java源码下载和阅读(JDK1.8/Java 11)
文章目录 1.openjdk的Java源码 2. Oracle 的Java源码 1.openjdk的Java源码 JDK10的源码可以直接从openjdk上下载.下载地址:openjdk-10_src ...
- java源码 - ReentrantReadWriteLock介绍
开篇 ReentrantReadWriteLock是Lock的另一种实现方式,我们已经知道了ReentrantLock是一个排他锁,同一时间只允许一个线程访问,而ReentrantReadWrite ...
- java源码 1.8_Java源码下载和阅读(JDK1.8/Java 11)
文章目录 1.openjdk的Java源码 2. Oracle 的Java源码 1.openjdk的Java源码 JDK10的源码可以直接从openjdk上下载.下载地址:openjdk-10_src ...
最新文章
- we-rich 小程序渲染富文本js库
- 写程序时,经常要重载OnPaint,定位很麻烦,现在有个简单办法
- 如何利用Featue对特定的文档库或列表添加listviewtoolbar上的button
- wireshark怎么抓包、wireshark抓包详细图文教程,简单介绍(及wireshark与wireshark legacy差别 )
- linux read函数_浅谈Linux内核IO体系之磁盘IO
- 随机森林和GBDT的几个核心问题
- Python 实现数据结构中的单链表,循环单链表,双链表
- Citrix XenApp 6.5客户端自动下载(无需从官网下载)
- 管理类综合199资料整理
- 游戏帐号被盗,但是杀毒软件没有发现病毒?DNS挟持盗号原理剖析
- 2021年4月中国旅游行业网络关注度分析报告
- Excel/WPS如何查找重复数据
- 量子纠缠计算机里的灵魂意识,量子纠缠理论告诉我们,灵魂真的存在于你我身体?...
- foobar2000提取音频
- 跨境电商必看:amazon账号关联因素
- Oracle用户、身份、数据类型、和mysql的区别
- 【系统】ThrottleStop软件使用教程入门级,游戏+工作两种解决cpu过热方案
- 实现共享要修改哪些计算机策略,局域网共享组策略怎么设置
- Stacked Hourglass Networks简析
- 解决Chrome自带翻译功能无法使用问题
热门文章
- 【译】.NET Core 是 .NET 的未来
- CodeFirst 的编程方式
- SAS (Serial Attached SCSI) 技术详解
- 将图片资源文件整合到DLL文件中
- Spark源码阅读02-Spark核心原理之容错及HA(高可用)
- ios模拟器快捷键操作
- 使用 Ant 自动生成项目构建版本
- [分享]关于windows下的小技巧
- [武道资料]《菲律宾短棍-单棍》(Edgar Sulite Lameco Escrima Single Stick)
- 一个想法--开发与业务,我们互相依赖