本文实例是基于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
"使用Tengine+Lua+GraphicsMagick实现图片...4. 可以flexibly地扩展和定制图片处理的功能 使用Tengine+Lua+GraphicsMagick实现图片自动裁剪缩放是一种高效、灵活和可扩展的解决方案,适用于大量图片加载的网站和应用。
Nginx+Lua+GraphicsMagick实现动态生成指定尺寸的图片
4. **图片处理**:除了上述功能,GraphicsMagick还提供了丰富的图像处理功能,如调整尺寸、裁剪、旋转、模糊等。例如,缩小图片尺寸: ``` gm convert original.jpg -resize 50% resized.jpg ``` 接下来,我们来...
总的来说,GraphicsMagick是一个功能强大的图像处理库,不仅提供了丰富的命令行工具,还支持与其他编程语言(如Java)的集成,使得开发者能够轻松地在各种项目中实现复杂的图像处理需求。无论你是个人用户还是企业...
GraphicsMagick++ 的本机绑定。 一些细节可以在这篇找到。 快速使用: var gm = require ( 'gm-native' ) ; var outputBuffer = gm . convert ( // Required. Can also be URL, file path or Buffer object. ...
在实际应用中,你可以根据需求使用GraphicsMagick和im4java进行复杂的图像处理操作,例如批量转换、添加水印、调整图像质量等。了解GraphicsMagick的命令行选项和im4java的API是充分发挥它们潜力的关键。
对于Java开发者来说,常用的图片处理工具有3个,JDK自带的图片处理库,ImageMagick,GraphicsMagick。JDK自带的图片处理库,虽稳定简单,性能却比较差;ImageMagick是目前最流行的图片处理工具,它的功能非常丰富;...
总结起来,"Tengine+Lua+GraphicsMagick实现图片自动伸缩功能(ubuntu版)"提供了一种高效且灵活的图片处理方案,适用于需要处理大量图片的网站,有助于提升用户体验和服务器性能。通过学习和应用这种技术,开发者可以...
**Nginx-Lua-GraphicsMagick:搭建高效图片处理服务** 在当今互联网时代,图片是网站内容的重要组成部分,无论是社交媒体、电子商务还是个人博客,都需要处理大量的图片。为了提高图片处理效率并减轻服务器负担,...
GraphicsMagick 是一个用来读写、生成超过 90 种图像格式的工具集合,可以对图片进行格式参数处理,支持包括 TIFF, JPEG, JPEG-2000,PNG, PDF, PhotoCD, SVG, 和 GIF 等图像格式。GraphicsMagick 是基于 ImageMagick...
GraphicsMagick是一个跨平台的图像处理工具,它支持大量的图像格式,并提供了丰富的API用于创建、编辑和转换图像。在OpenResty环境中,我们可以通过Lua调用GraphicsMagick的命令行接口,进行缩略图的生成、裁剪、...
GraphicsMagick是一款强大的开源图像处理工具,它支持多种图片格式,并提供了丰富的命令行接口来执行各种图像操作,如转换、裁剪、缩放、旋转、颜色调整等。在这个"GraphicsMagick图片截取软件全套及相应的demo.rar...
GraphicsMagick图片库GraphicsMagick-1.3.26.tar.xz Java图片处理 - 安装ImageMagick库使用convert命令 - 文章中的辅助文件 http://blog.csdn.net/chwshuang/article/details/64921665
将图片的上传,分布式管理 交由seaweedfs管理,可提供更快的响应速度,更方便,无痛的分布式扩展节点,billion 级别的。后面使用openresty + lua-resty-weedfs + graphicsmagick 生成缩略图功能独立处理。
GraphicsMagick能够动态的生成图片,特别适用于互联网的应用。可以用来处理调整尺寸、旋转、加亮、颜色调整、增加特效等方面。GaphicsMagick不仅支持命令行的模式,同时也支持C、C++、Perl、PHP、Tcl、 Ruby等的调用
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脚本...