码迷,mamicode.com
首页 > 其他好文 > 详细

调用imagick做图片等比例压缩5M到100kb

时间:2017-12-22 19:45:30      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:users   turn   exception   linu   lsp   on()   ret   压缩   arc   

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.im4java.core.ConvertCmd;
import org.im4java.core.IM4JavaException;
import org.im4java.core.IMOperation;

public class IMagickUtils {
	
	public static File IMCompress(String IMPath,File file){
		if(file.length()<1024*516L){ // 比0.5M大的图片压缩处理,否则直接使用
			return file;
		}
		int width = 800;
		int height = 600;
		try {
			SimpleImageInfo imageInfo = new SimpleImageInfo(new FileInputStream(file));
			width = imageInfo.getWidth();
			height = imageInfo.getHeight();
		} catch (IOException e1) {
			System.out.println("获取图片宽高失败,Imagickutils.java");
		}
		if(width>800){ // 按比例压缩图片大小,宽度最大为800
			 height = (int) (800.0*height/width);
			 width = 800;
		}
		String size = width+"x"+height+"!";
		String filePath = file.getAbsolutePath();
		
		IMOperation operation = new IMOperation();
		operation.addImage(filePath);
		operation.addRawArgs("-thumbnail", size);
		operation.addRawArgs("-quality", "80%");
		operation.addRawArgs("-units", "pixelsperinch");
		operation.addRawArgs("-density", "96");
		operation.addRawArgs("-colorspace","RGB"); // 转成RGB系 避免CMYK模式下的imageIO水印异常
		operation.addRawArgs("-strip");
		operation.addImage(filePath);

		ConvertCmd cmd = new ConvertCmd();
		cmd.setSearchPath(IMPath);  //Windows需要设置,Linux不需要
		try {
			cmd.run(operation);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return file;
	}

	public static void main(String[] args) throws IOException, InterruptedException, IM4JavaException {
		String impath = "D:\\Program Files\\ImageMagick-7.0.7-Q16";
		File file = new File("C:\\Users\\lenovo\\Downloads\\33.jpg");
		file = IMCompress(impath, file);
	}

}

  

调用imagick做图片等比例压缩5M到100kb

标签:users   turn   exception   linu   lsp   on()   ret   压缩   arc   

原文地址:http://www.cnblogs.com/codeinet/p/8087223.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!