我想這較屬於 L10N 吧~
且原來 rrdtool 即巳附
gd 1.3, 我想要作者去改變其原來架構我想是有困難的,為什麼他會用 gd1.3
其內的文件即巳說明,而 gd13 對中文的處理是有問題的,
我將其 MakeFile 中的 gcc link 改到系統的 gd2.0.25,
並且要再加 像 freetype/libiconv/libpng/libjpeg ,大概都換到最新的
原因是因為要讓 gd support 更多功能~
就 source 而言我只改了 rrdtool tarball 解開後的
gd1.3/gd.c 中這個部份
void gdImageString(gdImagePtr im, gdFontPtr f,
int x, int y, unsigned char *s, int color)
{
int i;
int l;
int bg;
int brect[8];
l = strlen(s);
bg=gdImageGetPixel(im,x,y);
bg=bg*-1;
gdImageStringTTF(im,&brect[0], color, "/usr/share/fonts/zh_TW/TrueType/bkai00mp.ttf",10,0.0,x-2,y+10,UTF8_String((char *)s));
}
static char* UTF8_String(char *s)
{
static char ob[256];
size_t ileft,oleft;
iconv_t cd;
int r;
char *ip,*op;
cd=iconv_open("UTF-8","BIG5");
ileft=strlen(s);
ip=s;
op=ob;
oleft=256;
memset(ob,0x00,256);
r=iconv(cd,&ip,&ileft,&op,&oleft);
iconv_close(cd);
return (ob);
}
gd1.3/gd.h 中的 struct gdImagePtr 換成你系統用的 libgd 的 struct
再修改
src 及 gd1.3 目錄下的 MakeFile 中的這一行即可
LIBS = -lm -L/usr/lib -lgd -liconv
你若有興趣去找 tarball 來稍微修改一下即可,有問題我們再根據現況來討論看看..
最近在研究 SNMP/MIB , 打算將每一個 C2900 Switch Port Status 都畫在rrdtool graphic 上
路人甲對 rrdtool 有什麼心得也可以分享給大家看看~~
貢獻一篇教學文章如何呢 ? 有問題我也可以幫您看看,
或從中學習您的心得