需求背景:
去年对图片做批量处理,也就是把原始图片处理成所需的图片,包括缩放所用到的以便做前台调用处理同时实现离线图片操作。
调研思路:
1.java原始的imageio,详情参见以前博客
基于javax.imageio的图片缩放和图片剪裁
2.三方native工具,此处是imagemagick,接口基于im4java,其实imagemagick的接口有多种,但是im4java做的仅仅是命令行的转换,然后利用imagemagick去操作
环境:
依赖:
<dependency> <groupId>org.im4java</groupId> <artifactId>im4java</artifactId> <version>1.2.0</version> </dependency>
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.上述代码由于公司协议是经过处理的,如果直接使用请注意扩展性,异常处理等相关事宜
相关推荐
1、ImageMagick跨平台图片处理框架 2、ImageMagick已打包为iOS静态库 3、项目中如何导入ImageMagick框架 4、一句代码调用压缩函数,代码实例如下: [[WZMQualityHandle shareHandle] compressImage:path quality:0.5...
基于ImageMagick和Magickwand的Web图像处理.pdf
同时准备封装了一个Node.js和Python的方法,主要还是讲一下然后使用imagemagick来对图片进行缩放、合成后进行裁剪吧。 首先素材文件如下(左边未处理封面,右边为需要合成上去的阴影): 安装ImageMagick的过程就不...
用ImageMagick java实现图片的缩放
因为im4java是基于imagemagick的commandline进行调用的java接口,不像 jmagick那样用java jni调用本地imagemagick的api那么复杂。其实安装imagemagick在任何平台都是一样的安装,在linux下面有rpm包,安装那个包,...
文档中列举了用ImageMagick命令行处理图片的例子
Version: ImageMagick 6.7.6-7 2012-04-20 Q16 http://www.imagemagick.org Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC Features: OpenMP Usage: convert.exe [options ...] file [ [options ......
java结合imageMagick实现图片渲染合成编辑,源码附送安装文件学习文档。
ImageMagick是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。...
mageMagick (TM) 是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种...ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布。它遵守GPL许可协议。它可以运行于大多数的操作系统。
图片处理程序ImageMagick,安装后可以解决python生成动态图表时报错找不到imagemagick
ImageMagick是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。...
使用ImageMagick给图片在指定位置加文字,可以实现P图软件一样的效果。加上for循环语句,可以实现批量给图片加文字。 关于ImageMagick,是一款免费的命令行图像处理软件,支持windows,linux,Mac OS多平台,下载...
目前最流行的图片压缩工具,C语言开发,不占用内存。
ImageMagick 强大的图片转换资源,对于png jpg gif tiff格式图片的处理尤为方便,支持嵌入式产品开发
ImageMagick是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。...
ImageMagick是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。...
ImageMagick
ImageMagick是免费软件,可以即用型二进制分发形式提供,也可以作为源代码提供,您可以在开放应用程序和专有应用程序中使用,复制,修改和分发它们。它是在派生的Apache 2.0 许可下分发的。 ImageMagick利用多个...