magick++ 简介:
最近工作的杂记:
1 文字:
1.1 设置字库环境配置
export MAGICK_CONFIGURE_PATH= 某个用于搜索配置文件的下面
将相关的config文件放置到目录下面, config文件中,可以配置相关的字库文件。
http://sourceforge.net/projects/gs-fonts/files/gs-fonts/8.11 (base 35%2C GPL)/ghostscript-fonts-std-8.11.tar.gz/download
下载完解压到相应的目录。
试一下最简单的合成
string sText = argv[1];
string sImgPath = argv[2];
char * psImg = NULL;
int iImgBufferLen = 0;
int ret = LoadFile2Mem( sImgPath.c_str(), &psImg, &iImgBufferLen );
assert( 0 == ret );
printf("load img %s len %d\n", sImgPath.c_str(), iImgBufferLen );
Magick::Blob blob( psImg, iImgBufferLen );
Magick::Geometry geo(10,10);
Magick::Image img;
img.read( blob );
Magick::NorthWestGravity style;
img.annotate(sText, geo, Magick::NorthWestGravity);
img.write( "text.jpg" );
free( psImg ), psImg = NULL;
是可行的。
1.2. 设置字体样式,大小,颜色
字体要兼容 中文,有个比较爽的招,直接在windows下把喜欢的字体copy到你想放的目录,在程序里面指明即可。
如微软雅黑。C:\WINDOWS \Fonts\msyh.ttf
程序指定 字体如下:
outImg.label("annote");
234 outImg.font( sFontPath.c_str() );
235 outImg.strokeColor( Magick::Color() );
236 outImg.fontPointsize( 15 ); //字体大小
237 //outImg.fillColor( "light blue" ); //简单的颜色可以这样指定
238 outImg.fillColor( "#052B61" ); // 用rgb 换算, 比如用color(128,128,128) 死活不行,蛋疼
239 outImg.annotate( sText.c_str(), "0,+5", Magick::NorthWestGravity );
240
这样基本可以实现字体样式,大小,颜色。