`

GraphicsMagick+IM4JAVA图片处理

阅读更多

本文实例是基于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+im4java.pdf

    GraphicsMagick号称图像处理领域的瑞士军刀。 短小精悍的代码却提供了一个鲁棒、高效的工具和库集合...本文档详细的介绍了 GraphicsMagick+im4java的搭建过程,对一些搭建过程中出现的问题进行了详细的解答,避免采坑。

    ChineseWaterMark:IM4JAVA+GraphicsMagick实现中文水印

    3. **处理图片**:通过调用IM4JAVA的`convert`方法,将上述参数转化为GraphicsMagick可执行的命令,然后执行该命令在目标图片上添加水印。 4. **异常处理**:在Java代码中,应该加入适当的错误处理机制,以应对可能...

    im4java-1.4.0.jar

    im4java-1.4.0.jar,用于ImagineMagick和GraphicsMagick

    使用Tengine+Lua+GraphicsMagick实现图片自动裁剪缩放

    "使用Tengine+Lua+GraphicsMagick实现图片...4. 可以flexibly地扩展和定制图片处理的功能 使用Tengine+Lua+GraphicsMagick实现图片自动裁剪缩放是一种高效、灵活和可扩展的解决方案,适用于大量图片加载的网站和应用。

    Nginx+Lua+GraphicsMagick图片缩略图

    Nginx+Lua+GraphicsMagick实现动态生成指定尺寸的图片

    使用GraphicsMagick处理图片含Demo

    4. **图片处理**:除了上述功能,GraphicsMagick还提供了丰富的图像处理功能,如调整尺寸、裁剪、旋转、模糊等。例如,缩小图片尺寸: ``` gm convert original.jpg -resize 50% resized.jpg ``` 接下来,我们来...

    GraphicsMagick

    总的来说,GraphicsMagick是一个功能强大的图像处理库,不仅提供了丰富的命令行工具,还支持与其他编程语言(如Java)的集成,使得开发者能够轻松地在各种项目中实现复杂的图像处理需求。无论你是个人用户还是企业...

    node-gm-native:用于 Node 的本地 GraphicsMagick++ 插件

    GraphicsMagick++ 的本机绑定。 一些细节可以在这篇找到。 快速使用: var gm = require ( 'gm-native' ) ; var outputBuffer = gm . convert ( // Required. Can also be URL, file path or Buffer object. ...

    GraphicsMagick安装包

    在实际应用中,你可以根据需求使用GraphicsMagick和im4java进行复杂的图像处理操作,例如批量转换、添加水印、调整图像质量等。了解GraphicsMagick的命令行选项和im4java的API是充分发挥它们潜力的关键。

    GraphicsMagick-1.3.12-Q16-windows-dll.exe

    对于Java开发者来说,常用的图片处理工具有3个,JDK自带的图片处理库,ImageMagick,GraphicsMagick。JDK自带的图片处理库,虽稳定简单,性能却比较差;ImageMagick是目前最流行的图片处理工具,它的功能非常丰富;...

    Tengine+Lua+GraphicsMagick实现图片自动伸缩功能(ubuntu版).rar

    总结起来,"Tengine+Lua+GraphicsMagick实现图片自动伸缩功能(ubuntu版)"提供了一种高效且灵活的图片处理方案,适用于需要处理大量图片的网站,有助于提升用户体验和服务器性能。通过学习和应用这种技术,开发者可以...

    nginx-lua-GraphicsMagick

    **Nginx-Lua-GraphicsMagick:搭建高效图片处理服务** 在当今互联网时代,图片是网站内容的重要组成部分,无论是社交媒体、电子商务还是个人博客,都需要处理大量的图片。为了提高图片处理效率并减轻服务器负担,...

    GraphicsMagick 图片工具-图片处理

    GraphicsMagick 是一个用来读写、生成超过 90 种图像格式的工具集合,可以对图片进行格式参数处理,支持包括 TIFF, JPEG, JPEG-2000,PNG, PDF, PhotoCD, SVG, 和 GIF 等图像格式。GraphicsMagick 是基于 ImageMagick...

    缩略图OpenResty(Nginx)+Lua+GraphicsMagick

    GraphicsMagick是一个跨平台的图像处理工具,它支持大量的图像格式,并提供了丰富的API用于创建、编辑和转换图像。在OpenResty环境中,我们可以通过Lua调用GraphicsMagick的命令行接口,进行缩略图的生成、裁剪、...

    GraphicsMagick图片截取软件全套及相应的demo.rar

    GraphicsMagick是一款强大的开源图像处理工具,它支持多种图片格式,并提供了丰富的命令行接口来执行各种图像操作,如转换、裁剪、缩放、旋转、颜色调整等。在这个"GraphicsMagick图片截取软件全套及相应的demo.rar...

    GraphicsMagick图片库GraphicsMagick-1.3.26.tar.xz

    GraphicsMagick图片库GraphicsMagick-1.3.26.tar.xz Java图片处理 - 安装ImageMagick库使用convert命令 - 文章中的辅助文件 http://blog.csdn.net/chwshuang/article/details/64921665

    openresty + lua-resty-weedfs + graphicsmagick小文件部署方案

    将图片的上传,分布式管理 交由seaweedfs管理,可提供更快的响应速度,更方便,无痛的分布式扩展节点,billion 级别的。后面使用openresty + lua-resty-weedfs + graphicsmagick 生成缩略图功能独立处理。

    GraphicsMagick图像处理

    GraphicsMagick能够动态的生成图片,特别适用于互联网的应用。可以用来处理调整尺寸、旋转、加亮、颜色调整、增加特效等方面。GaphicsMagick不仅支持命令行的模式,同时也支持C、C++、Perl、PHP、Tcl、 Ruby等的调用

    Docker+FastDFS+Nginx+Lua搭建图片服务器,并实现图片缩略图

    Docker+FastDFS+Nginx+Lua实现图片缩略图1、FastDFS安装1.1、镜像下载1.2、开启tracker容器1.3、开启storage容器1.4、测试2、FastDFS集成Nginx+lua2.1、依赖包下载2.2、安装软件基础包2.3、依赖安装2.4、配置Lua脚本...

Global site tag (gtag.js) - Google Analytics