本文实例是基于Windows平台
首先下载GraphicsMagick,地址:
http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick-binaries/1.3.18/
和所有应用程序安装一样,直接下一步到安装完成即可。
然后下载IM4JAVA,地址:http://sourceforge.net/projects/im4java/files/im4java-1.4.0/
下载后解压,复制里面的:im4java-1.4.0.jar到工程的lib里。
环境就安装完成了。下面是相关代码:
package com.yzr.utils; import java.io.IOException; import org.im4java.core.ConvertCmd; import org.im4java.core.IM4JavaException; import org.im4java.core.IMOperation; import org.im4java.process.ProcessStarter; public class PictureUtil { static { String osName = System.getProperty("os.name"); // Windows需要进行路径的设置 if (osName.toLowerCase().contains("windows")) { // 设置全局搜索路径(GraphicsMagick安装路径) String imPath = "D:\\Program Files (x86)\\GraphicsMagick-1.3.18-Q16"; ProcessStarter.setGlobalSearchPath(imPath); } } /** * 先缩放,后居中切割图片 * * @param srcPath * 源图路径 * @param desPath * 目标图保存路径 * @param rectw * 待切割在宽度 * @param recth * 待切割在高度 * @throws IM4JavaException * @throws InterruptedException * @throws IOException */ public static void cropImageCenter(final String srcPath, final String desPath, final int rectw, final int recth) throws IOException, InterruptedException, IM4JavaException { // create command(true表示使用GraphicsMagick,API上有说) ConvertCmd convert = new ConvertCmd(true); // create the operation, add images and operators/options IMOperation op = new IMOperation(); op.addImage(); // "^"代表缩放后裁剪,这个不知道在文档中的哪里。用的别人的代码 op.resize(rectw, recth, '^').gravity("center").extent(rectw, recth); op.addImage(); convert.run(op, srcPath, desPath); } /** * 先缩放,后填充背景色,并加水印 * * @param srcPath * 源图路径 * @param desPath * 目标图路径 * @param rectw * 目标图的宽度 * @param recth * 目标图的高度 * @param bgColor * 背景颜色 * @param text * 水印文本 * @throws IOException * @throws InterruptedException * @throws IM4JavaException */ public static void cropImageCenter(final String srcPath, final String desPath, final int rectw, final int recth, final String bgColor, final String text) throws IOException, InterruptedException, IM4JavaException { // create command(true表示使用GraphicsMagick,API上有说) ConvertCmd convert = new ConvertCmd(true); // create the operation, add images and operators/options IMOperation op = new IMOperation(); op.addImage(); // 设置背景颜色 op.background(bgColor); // 缩放后不足的地方填充背景颜色 op.resize(rectw, recth).gravity("center").extent(rectw, recth); // 加水印,有中文乱码问题,我实验的时候用的英文。期待有人解决 op.font("C:\\Windows\\Fonts\\simsun.ttc").gravity("southeast").pointsize(14).fill("red").draw("text 10,10 '" + text + "'"); op.addImage(); convert.run(op, srcPath, desPath); } }
测试代码:
public static void main(String[] args) throws Exception { // PictureUtil.cropImageCenter("E:/360download/2.jpg", "E:/360download/myimage_small.jpg", 800, 600, "#CCCCCC", "test"); PictureUtil.cropImageCenter("E:/360download/2.jpg", "E:/360download/myimage_small.jpg", 800, 600); }
实验的完成参考了别人的代码及文章。
相关推荐
GraphicsMagick号称图像处理领域的瑞士军刀。 短小精悍的代码却提供了一个鲁棒、高效的工具和库集合...本文档详细的介绍了 GraphicsMagick+im4java的搭建过程,对一些搭建过程中出现的问题进行了详细的解答,避免采坑。
3. **处理图片**:通过调用IM4JAVA的`convert`方法,将上述参数转化为GraphicsMagick可执行的命令,然后执行该命令在目标图片上添加水印。 4. **异常处理**:在Java代码中,应该加入适当的错误处理机制,以应对可能...
im4java-1.4.0.jar,用于ImagineMagick和GraphicsMagick
总的来说,GraphicsMagick是一个功能强大的图像处理库,不仅提供了丰富的命令行工具,还支持与其他编程语言(如Java)的集成,使得开发者能够轻松地在各种项目中实现复杂的图像处理需求。无论你是个人用户还是企业...
在实际应用中,你可以根据需求使用GraphicsMagick和im4java进行复杂的图像处理操作,例如批量转换、添加水印、调整图像质量等。了解GraphicsMagick的命令行选项和im4java的API是充分发挥它们潜力的关键。
基于imagemagick 的一个版本的分支,是属于图像处理工具,功能强大,和im4java组合完成java对图片的处理功能。
EMF图片转为JPG/PNG 需安装GraphicsMagick 提供实例代码
图片处理工具,配合im4java.jar实现对图片的处理,本身又没有Graphics容易造成内存溢出的缺陷,该压缩包程序执行后会自动配置环境变量,很方便实用