使用GraphicsMagick打文字水印

使用AnnotateImage给图片打文字水印

语法

unsigned int AnnotateImage( Image *image, DrawInfo *draw_info );

DrawInfo

DrawInfo数据结构用来支持通过使用绘图命令给图片注释
主要方法

方法 说明
void GetDrawInfo (const ImageInfo *, DrawInfo *) 使用默认参数分配一个DrawInfo对象
DrawInfo *CloneDrawInfo( const ImageInfo *image_info, const DrawInfo *draw_info ) 分配一个对象,并从其它对象拷贝所有值,若参数为空,则使用默认参数初始化对象。
void DestroyDrawInfo( DrawInfo *draw_info ) DestroyDrawInfo释放DrawInfo空间
DrawImage( Image *image, const DrawInfo *draw_info ) 在当前图上画东西,这个东西可以是一个字符串,也可以是文件名。用@作为前缀表示是个文件名,对因文件内容将被画在图片上。注意:该接口已经很老了,可以使用Draw这个方法替代。

MD,连个Sample的搜不到,半路出家玩图片的哪懂那些专业术语,想杀人XXXXXXXXXXXX

参数说明:

参数 类型 说明
font char * 渲染文字使用的字体所在文件路径,不可为空
gravity (NorthWest,North,NorthEast, West,Center,East, SouthWest,South,SouthEast) 渲染文字所在位置重心,左上,中上,右上,左中,中间,右中,左下,中下,右下
pointsize double 渲染文字大小
geometry char * 文字编码后所占矩形的大小,sample “+100+100”

案例

代码annotate.cpp
效果:

annotate.jpg