java 大图片处理GraphicsMagick + im4java [缩放,旋转,裁剪]
ImageMagick
GraphicsMagick
两个图片处理软件我就不说了,因为我没那个评论的本事,其实这些软件都会有命令行的指令,然后我们用java调用来对图片进行编辑,调用什么指令可能学一下才知道,不过我们也不用自己写指令吧,因为别人已经封装好了那些指令的接口(JNI),下面就是那些JNI
jmagick
缺点:实地测试后发现,速度果然提高了不少,但是质量却大大下降了,在大量测试数据下,每生成100张图片约会有5张图片生成出现错误,还会出现down机的情况。
im4java
用那个不用说吧,看更新时间,不知道你们会选择什么
所以我选用了 GraphicsMagick +im4java
下载GraphicsMagick http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.17/ 其实他就是一个软件,然后windows版本会自动将安装目录加入到path变量,所以在指令窗口可以调用,即安装好就不管它了
然后将里面的im4java-1.3.2加入到我们的项目引用里面就可以了
根据别人的代码,自己再封装了一下接口吧,基本够用,那些水印的就没加上去了,现在不需要 工具很强大,都是靠指令,所以多看看API和软件本身的使用吧
好吧,我忽悠完了,把时间交给你们了. 附上代码:[好纠结的代码编辑器,只能这样了]
package test;
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList;
import org.im4java.core.ConvertCmd; import org.im4java.core.IM4JavaException; import org.im4java.core.IMOperation; import org.im4java.core.IdentifyCmd; import org.im4java.process.ArrayListOutputConsumer;
public class TestGm { /** * * 获得图片文件大小[小技巧来获得图片大小] * * @param filePath * 文件路径 * * * @return 文件大小 */
public int getSize(String imagePath) {
int size = 0;
FileInputStream inputStream = null;
try {
inputStream = new FileInputS