免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6540 | 回复: 4
打印 上一主题 下一主题

有谁用cacti的weathermap插件的[已解决] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-19 11:50 |只看该作者 |倒序浏览
weathermap的标题可以显示中文,但如何让他的label怎么也能显示中文?
参看weathermap的config选项,只有如下的参数可以设置字体:
1、FONTDEFINE
FONTDEFINE fontnumber gdfontfile
FONTDEFINE fontnumber ttffontfile fontsize
The freetype library used in PHP makes a somewhat complex set of rules for where it will search for truetype fonts. The two easiest options are:

Use the full absolute path to your .ttf file
Keep your .ttf files in the Weathermap directory, and use the first part of the filename only, with no '.ttf' on the end.
2、LABELFONT
LABELFONT fontnumber
Specify the font used for drawing the LABEL.

Fonts are specified by number. The GD library that Weathermap uses has 5 built-in fonts, 1-5. You can define new fonts based on TrueType or GD fonts by using the FONTDEFINE directive.

我尝试在config文件添加:
FONTDEFINE 100 /usr/share/fonts/zh_CN/TrueType/zysong.ttf 16
LABELFONT  100
但还是显示乱码,是否weathermap不支持zysong.ttf?如何设置这个字体才能让他显示中文?


另外说一下就是我设置上面的以后,过了一段时间我上述配置的给系统清掉了,应该是系统不识别这句话而清掉的吧,日志中有大量的如下错误:
11/19/2007 11:50:06 AM - WEATHERMAP: Poller[0] Using a non-existent special font (100) - falling back to internal GD fonts [WMWARN03]  
11/19/2007 11:50:06 AM - WEATHERMAP: Poller[0] Using a non-existent special font (100) - falling back to internal GD fonts [WMWARN03]  
11/19/2007 11:50:06 AM - WEATHERMAP: Poller[0] Using a non-existent special font (100) - falling back to internal GD fonts [WMWARN03]
config全局配置有设置KEYFONT 100

[ 本帖最后由 woodwalker 于 2007-12-15 22:35 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-12-14 16:58 |只看该作者
同问该问题,楼主我们可以交流一下,我也想用这个模块插件的功能

论坛徽章:
0
3 [报告]
发表于 2007-12-15 22:32 |只看该作者
问题已经解决,方法比较笨,没办法了,主要还是因为不会php。
关于这个中文的问题要注意两个方面:
1、安装php时注意gd库和freetype的支持,编译时多看看configure参数和结果,安装weathermap后确保运行php check.php时所有测试都通过,这方面可以看weathermap的manual。我的编译参数如下:
'./configure' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-mysql=/usr/local/mysql/' '--with-gd=/usr/local/gd/' '--with-zlib-dir=/usr/local/rrdbuild/lb/' '--with-png-dir=/usr/local/rrdbuild/lb/' '--with-jpeg-dir=/usr/local/libjpeg/' '--with-freetype-dir=/usr/local/rrdbuild/lb/' '--enable-sockets' '--with-gettext' '--enable-gd-native-ttf' '--enable-mbstring' '--with-ttf'


2、打开weathermap目录下的Weathermap.class.php文件,可以找到如下的函数:
    function myimagestring($image, $fontnumber, $x, $y, $string, $colour, $angle=0)
    {
        // if it's supposed to be a special font, and it hasn't been defined, then fall through
        if ($fontnumber > 5 && !isset($this->fonts[$fontnumber]))
        {
            warn ("Using a non-existent special font ($fontnumber) - falling back to internal GD fonts [WMWARN03]\n");
            if($angle != 0) warn("Angled text doesn't work with non-FreeType fonts [WMWARN02]\n");
            $fontnumber=5;
        }
        if (($fontnumber > 0) && ($fontnumber < 6))
        {
            imagestring($image, $fontnumber, $x, $y - imagefontheight($fontnumber), $string, $colour);
            if($angle != 0) warn("Angled text doesn't work with non-FreeType fonts [WMWARN02]\n");
        }
        else
        {
            // look up what font is defined for this slot number
            if ($this->fonts[$fontnumber]->type == 'truetype')
            {
                $shishi=iconv("GB2312","UTF-8",$string);
                imagettftext($image, $this->fonts[$fontnumber]->size, $angle, $x, $y,
                    $colour, $this->fonts[$fontnumber]->file, $shishi);
            }
            if ($this->fonts[$fontnumber]->type == 'gd')
            {
                imagestring($image, $this->fonts[$fontnumber]->gdnumber,
                    $x,      $y - imagefontheight($this->fonts[$fontnumber]->gdnumber),
                    $string, $colour);
                if($angle != 0) warn("Angled text doesn't work with non-FreeType fonts [WMWARN04]\n");
            }
        }
    }
  上面这个函数通过php内置函数imagettftext进行truetpye文字的绘制,所以解决问题的关键是如何让imagettftext函数绘
  制中文字体,我的解决办法就是添加$shishi=iconv("GB2312","UTF-8",$string),然后再将此字符串输出。
  楼上的兄弟有兴趣的话咱们可以交流一下,我qq77674031。

论坛徽章:
0
4 [报告]
发表于 2007-12-15 23:36 |只看该作者
楼主我加了你啦!!!

论坛徽章:
0
5 [报告]
发表于 2008-11-19 22:30 |只看该作者
感觉解决起来好复杂,我是不用label,把设备全部用图片代替,图片上面加设备名称就好了,懒的整理,实现效果就好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP