GM是什么,上网查查,IM4java是什么,也请上网查。以下的介绍同样适合其他语言使用gm或是ImageMagick的安装和中文乱码的情况。ImageMagick也测试通过
1、下载如下,并全部解压(参见官方依赖下载地址ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/delegates):
libpng-1.6.19.tar.gz 支持png格式
jpegsrc.v9.tar.gz支持Jpeg格式
ghostscript-9.15.tar.gz支持字体
GraphicsMagick-1.3.23.tar.gz主图片处理程序
freetype-2.6.2.tar.gz字体引擎
2、分别进入libpng、jpegsrc、freetype、ghostscript的解压目录,分别执行如下命令。
./configure
make
sudo make install
3、进入GraphicsMagick解压目录,执行如下命令。
./configure --prefix=/usr/local/GraphicsMagick-1.3.23 --with-quantum-depth=16 --enable-shared --enable-static --with-windows-font-dir=/Library/Fonts --with-gslib=no
make
make install
注:
--prefix:是指安装目录
--with-quantum-depth:指图色深,16位还是8位
--with-windows-font-dir:windows字体的安装目录
GraphicsMagick执行完第一条./configure命令后,最后会有如下的内容,注意其中的Ghostscript、JPEG v1、PNG、FreeType的Configured value部分都应该是yes或是有值,这样才能基本支持jpeg\png和字体。
Option Configure option Configured value ----------------------------------------------------------------- Shared libraries --enable-shared=yes yes Static libraries --enable-static=yes yes GNU ld --with-gnu-ld=no no Quantum depth --with-quantum-depth=16 16 Modules --with-modules=no no Delegate Configuration: BZLIB --with-bzlib=yes yes DPS --with-dps=yes no FlashPIX --with-fpx=no no FreeType 2.0 --with-ttf=yes yes Ghostscript None gs (unknown) Ghostscript fonts --with-gs-font-dir=default none Ghostscript lib --with-gslib=no no JBIG --with-jbig=yes no JPEG v1 --with-jpeg=yes yes JPEG-2000 --with-jp2=yes no LCMS v2 --with-lcms2=yes no LZMA --with-lzma=yes no (failed tests) Magick++ --with-magick-plus-plus=yes yes PERL --with-perl=no no PNG --with-png=yes yes (-lpng16) TIFF --with-tiff=yes no TRIO --with-trio=yes no WEBP --with-webp=yes no Windows fonts --with-windows-font-dir= none WMF --with-wmf=yes no X11 --with-x= no XML --with-xml=yes yes ZLIB --with-zlib=yes yes X11 Configuration: Not using X11. Options used to compile and link: CC = gcc CFLAGS = -g -O2 -Wall -D_THREAD_SAFE CPPFLAGS = -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2 CXX = g++ CXXFLAGS = -D_THREAD_SAFE DEFS = -DHAVE_CONFIG_H LDFLAGS = LIBS = -ljpeg -lpng16 -lbz2 -lxml2 -lz -lm -lpthread
4、配置环境变量(对于java中im4java调用,以下配置无意义,所以此步也可省略):
export GMAGICK_HOME=/usr/local/GraphicsMagick-1.3.18 export PATH="$GMAGICK_HOME/bin:$PATH" export IM4JAVA_TOOLPATH=$GMAGICK_HOME/bin/gm
5、终端中输入如下命令进行测试。
gm convert 111.jpg 222.png gm convert 111.jpg -resize 100x100 out.jpg gm convert -list formats gm convert Arial -fill white -pointsize 24 -draw "text 10,15 'lifesinger 2006' " /Users/xxx/Documents/temp/2.png /Users/xxx/Documents/temp/2new.png
6、JAVA代码例子。
注:网上的文章针对中文乱码的原因解释大多都是错的,首先可确定是GM如上版本是肯定支持中文水印之类的,也不存在什么单数中文和双数中文支持的问题。并且还看到有人先用AWT生成透明底的水印图片,再把主图与这个水印图片用GM合并。别的不说,用awt与gm的这两方案性能比较一下,你就会发现是数量级的差别,就先不提图片质量和大小等。
关键是两点:
a.要使用中文字体,使用非中文字体会乱码。
b.GM只接收UTF-8的内容,否则乱码,所以传的值要UTF-8编码。你可以整个*.java文件设置为utf-8编码,也可以对传入的水印内容String转成uft-8编码。如以下例子的WaterMark.java文件即为utf-8编码。
import org.im4java.core.ConvertCmd; import org.im4java.core.IM4JavaException; import org.im4java.core.IMOperation; import org.im4java.process.Pipe; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class WaterMark { public static void main(String[] args) throws Exception { String src="/Users/xxx/Documents/temp/test/ban.jpg"; //需要加水印的源图片 String desc="/Users/xxx/Documents/temp/test/new/abc"; //生成的水印图片的路径 // String src1="/Users/xxx/Documents/temp/test/icon.jpg"; //需要加水印的源图片 // String desc1="/Users/xxx/Documents/temp/test/new/icon"; //生成的水印图片的路径 String content = "中文"; for (int i = 0; i < 10; i++) { addImgText(src, content + i, desc + i + ".jpg"); } // for (int i = 0; i < 1; i++) { // addImgText(src1, content + i, desc1 + i + ".jpg"); // } } /** * 给图片加水印 * @param srcPath 源图片路径 */ public static void addImgText(String srcPath, String content, String desc) throws Exception { IMOperation op = new IMOperation(); op.font("/Library/Fonts/Yuanti.ttc").gravity("southeast").pointsize(18).fill("#BCBFC8").draw("text 10,15 '" + content + "'").quality(90.0); op.addImage(); op.addImage(); ConvertCmd cmd = new ConvertCmd(true); cmd.setAsyncMode(true); cmd.setSearchPath("/usr/local/GraphicsMagick-1.3.18/bin");// 如果是windows则需要设置convert路径 try { cmd.run(op,srcPath,desc); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } catch (IM4JavaException e) { e.printStackTrace(); } } }
相关推荐
GraphicsMagick可以在绝大多数的平台上使用,Linux、Mac、Windows都没有问题。 GraphicsMagick 支持大图片的处理,并且已经做过GB级别的图像处理实验。GraphicsMagick能够动态的生成图片,特别适用于互联网的应用。...
通过IM4JAVA,我们可以方便地在Java代码中调用GraphicsMagick的命令,实现对图像的水印处理。 在"ChineseWaterMark"项目中,核心部分应该是如何正确处理中文字符作为水印。中文字符的编码和渲染在计算机图形学中...
im4java-1.4.0.jar,用于ImagineMagick和GraphicsMagick
在Linux环境中安装GraphicsMagick是一项常见的任务,尤其对于开发者和系统管理员来说,它能帮助他们快速地对图像进行转换、裁剪、缩放等操作。下面将详细介绍在Linux环境下安装GraphicsMagick的过程。 首先,确保你...
在实际应用中,你可以根据需求使用GraphicsMagick和im4java进行复杂的图像处理操作,例如批量转换、添加水印、调整图像质量等。了解GraphicsMagick的命令行选项和im4java的API是充分发挥它们潜力的关键。
"gm"可能是压缩包内的主要程序或者脚本文件,通常在GraphicsMagick的使用中,"gm"代表GraphicsMagick的命令行接口。用户可以通过执行"gm command image.jpg"这样的命令来调用不同的处理命令,如"gm convert"用于图像...
在安装和配置完成后,我们可以使用Lua脚本控制GraphicsMagick对图片的处理,并通过Tengine实现图片的自动裁剪和缩放。 本解决方案的优点是: 1. 实现了图片的自动裁剪和缩放,适应不同的规格和比例尺寸 2. 降低了...
在安装GraphicsMagick时,你需要了解以下关键知识点: 1. **安装过程**:通常,执行.exe文件会引导你通过一个简单的安装向导,让你选择安装路径、是否创建桌面快捷方式等选项。确保你有管理员权限,因为安装过程中...
在本文中,我们将深入探讨如何利用GraphicsMagick进行图片处理,并通过一个Java Demo程序——ImageUtil.java来展示其实现。 首先,GraphicsMagick-1.3.25-Q16-win64-dll.exe是GraphicsMagick在Windows平台上的安装...
Nginx+Lua+GraphicsMagick实现动态生成指定尺寸的图片
GraphicsMagick++ 的本机绑定。 一些细节可以在这篇找到。 快速使用: var gm = require ( 'gm-native' ) ; var outputBuffer = gm . convert ( // Required. Can also be URL, file path or Buffer object. ...
它提供了命令行界面,使得在各种脚本环境中处理图像变得简单。这个安装包是GraphicsMagick的1.3.40版本,包含了适用于不同操作系统的二进制文件。 在Linux系统中,通常我们会用到`GraphicsMagick-1.3.40.tar.gz`这...
在服务器上安装GraphicsMagick,可以实现快速的图片转换、裁剪和尺寸调整等功能。首先,确保你的服务器操作系统是Linux(例如Ubuntu或CentOS),然后通过以下命令进行安装: 对于Ubuntu: ```bash sudo apt-get ...
将图片的上传,分布式管理 交由seaweedfs管理,可提供更快的响应速度,更方便,无痛的分布式扩展节点,billion 级别的。后面使用openresty + lua-resty-weedfs + graphicsmagick 生成缩略图功能独立处理。
执行这个文件将启动安装过程,用户可以在Windows环境中快速安装GraphicsMagick。 3. **a.jpg**:这是一个JPEG图像文件,是GraphicsMagick可以处理的众多图像格式之一。使用GraphicsMagick,用户可以对这个图像执行...
在提供的压缩文件列表中,`GraphicsMagick-1.3.30.tar.gz`是源代码包,通常需要通过编译来安装。安装过程涉及解压、配置、编译和安装等步骤,对于Linux用户来说,通常使用`tar`命令解压,`./configure`进行配置,`...
在这个"GraphicsMagick图片截取软件全套及相应的demo.rar"压缩包中,你将找到完整的GraphicsMagick软件包以及相关的示例(demo),这将帮助你快速理解和应用到实际的Java项目中。 首先,让我们深入了解一下...
对于Java开发者来说,常用的图片处理工具有3个,JDK自带的图片处理库,ImageMagick,GraphicsMagick。JDK自带的图片处理库,虽稳定简单,性能却比较差;ImageMagick是目前最流行的图片处理工具,它的功能非常丰富;...