博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于imagemagick的图片缩放和图片剪裁
阅读量:4112 次
发布时间:2019-05-25

本文共 1682 字,大约阅读时间需要 5 分钟。

需求背景:

去年对图片做批量处理,也就是把原始图片处理成所需的图片,包括缩放所用到的以便做前台调用处理同时实现离线图片操作。

 

调研思路:

1.java原始的imageio,详情参见以前博客

2.三方native工具,此处是imagemagick,接口基于im4java,其实imagemagick的接口有多种,但是im4java做的仅仅是命令行的转换,然后利用imagemagick去操作

 

环境:

依赖:

org.im4java
im4java
1.2.0

ImageMagick-6.7.6-Q16安装:

${

ImageMagick_home}=D:/tools/tool/ImageMagick-6.7.6-Q16

 

代码实现:

缩放:

public static void scale(String srcFile, String dstFile, int dstWidth, int dstHeight) {	try {		IMOperation imOperation = new IMOperation();		imOperation.addImage(srcFile);		imOperation.resize(dstWidth, dstHeight);		imOperation.addImage(dstFile);		ConvertCmd convert = new ConvertCmd();		convert.setSearchPath(imageMagickPath);		convert.run(imOperation);	} catch (Exception e) {		e.printStackTrace();	}}

剪裁:

public static void cut(String srcFile, String dstFile, int x, int y, int widthRange,	int heightRange) {	try {		IMOperation imOperation = new IMOperation();		imOperation.addImage(srcFile);		imOperation.crop(widthRange, heightRange, x, y);		imOperation.addImage(dstFile);		ConvertCmd convert = new ConvertCmd();		convert.setSearchPath(imageMagickPath);		convert.run(imOperation);	} catch (Exception e) {		e.printStackTrace();	}}

 测试:

private final static String imageMagickPath = "D:/tools/tool/ImageMagick-6.7.6-Q16";public static void main(String[] args) throws Exception {	String srcFile = "G:/1.jpg";	String dstFile = "G:/test.jpg";	int dstHeight = 200;	int dstWidth = 200;	scale(srcFile, dstFile, dstWidth, dstHeight);	int x = 10;	int y = 10;	int widthRange = 500;	int heightRange = 600;	cut(srcFile, dstFile, x, y, widthRange, heightRange);}

 

注意事项:

1.上述代码由于公司协议是经过处理的,如果直接使用请注意扩展性,异常处理等相关事宜

 

转载地址:http://eiqsi.baihongyu.com/

你可能感兴趣的文章
codeforces 412 B T-shirt Hunt
查看>>
codeforces 412 D Dynamic Problem Scoring
查看>>
codeforces -420-B. Okabe and Banana Trees
查看>>
codeforces 420-C. Okabe and Boxes
查看>>
数据结构--线性表的顺序表示及操作
查看>>
UVA 658 It's not a Bug, it's a Feature!
查看>>
Educational Codeforces Round 27-C. Two TVs
查看>>
UVA-1658 Admiral
查看>>
二维几何基础--向量的表示及简单运算
查看>>
向量运算-叉积,点积
查看>>
点-线,线-线
查看>>
That Nice Euler Circuit UVALive - 3263
查看>>
7-9 拯救007
查看>>
7-3 古风排版
查看>>
7-14 最小生成树的唯一性
查看>>
7-11 肿瘤诊断
查看>>
7-8 整除光棍
查看>>
7-16 喊山
查看>>
7-13 地下迷宫探索
查看>>
Tree UVA - 548
查看>>