免费注册 查看新帖 |

Chinaunix

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

perl如何调用字体文件? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-04-08 14:33 |只看该作者 |倒序浏览
比如我想调用一个叫xfont的字体文件,我应该如何在perl里实现?谢谢

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-04-08 15:39 |只看该作者

perl如何调用字体文件?

看你怎麼用..我只知道如果你要畫圖的話..
可以安裝GD Module..
安裝過程中會安裝freetype這個library..透過這個
library 你就可以在圖形中使用各種TTF字體文件..
但是要注意的是有些TTF字體文件只支援utf-8 編碼..
所以你要將文字畫出來之前,得先將文字轉碼成utf8..
因為PERL的編碼方式default與系統所設定的相同..
不一定是UTF-8編碼...

下面是個畫Pie Chart的例子,我用的字體文件..
只支援Big 5所以
我可以不用轉碼....但是有些字體就真的非得轉碼
不成..

如果你不是要畫圖,是要產生其他文件..到
search.cpan.org找找吧..或許有人已經放上去了..


#!/usr/bin/perl
use GD;
use GD::Graph;
use GD::Graph::pie;

    print "Content-type: image/png\n\n";
    # create a new pie
    my $pie = new GD::Graph::pie(800,600);
    # data
    @data = (
      ["第一(10%)","第二(33%)","第三","第四","第五","第六","第七","第八","第九","第十"],
      [ 160,350,100,300,300,300,300,300,343,123],
    );
    $data1 = GD::Graph:ata->;new(\@data);
#       dclrs=>;[qw(green pink yellow white blue red cyan purple orange gray)],
    $pie->;set(
       dclrs=>;[qw(#22FF44 #24A3F1 #FF0000 #FFFF00 #FF00FF #00FF00 #0000FF #00FFFF #FD0931 #FFFFFF)],
       pie_height =>; 60,
       show_values=>;1,
       borderclrs =>; "black",
       title=>;"測試用",
       label=>;"測試二",
    );
    $pie->;set_label_font("/apile/XXX.TTF",10);
    $pie->;set_value_font("/apile/XXX.TTF",10);
    $pie->;set_title_font("/apile/XXX.TTF",10);
#    $pie->;plot(\@data);


    # make sure we are writing to a binary stream
    binmode STDOUT;

    # Draw the pie, Convert the image to GIF and print it on standard output
    print $pie->;plot($data1)->;png;

论坛徽章:
0
3 [报告]
发表于 2003-04-08 18:01 |只看该作者

perl如何调用字体文件?

谢谢大大的帮助!

是这样的,我只要实现很简单的功能就行了:以图片的形式输出一个数字,数字使用我规定的字体。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2003-04-08 21:08 |只看该作者

perl如何调用字体文件?

畫圖呀...
安裝GD module吧...
你可以往非常前面找找以前貼的一篇帖子..
裡面有要安裝GD module要些安裝些什麼咚咚...
印象中有gd library,freetype , jpeg,png, ....
GD moudle,GD::Graph module....
因為你要畫圖..所以這些是必備的東西.....
安裝的過程可能會很辛苦哩...最好先看看README與
INSTALL兩個文件..裡面會跟你說要先安裝哪些library..
才能安裝GD module...裝好後..看看他的使用說明...
你要做的事情應該很容易才對...

我用 GD module加上Barcode module寫過一些統計圖形與輸出
BAR CODE 的程序..還蠻有趣的.....

论坛徽章:
0
5 [报告]
发表于 2003-04-09 09:45 |只看该作者

perl如何调用字体文件?

#!/usr/bin/perl
print "Content-type: image/gif\n\n";
use GD;
$im = new GD::Image(130,1;
$black = $im->;colorAllocate(0,0,0);
$white = $im->;colorAllocate(255,255,255);
$im->;fill(10,10,$black);
$im->;string(gdSmallFont,2,1,"http://www.CGIren.com/",$white);
binmode STDOUT;
print $im->;gif;
exit;

在这个例子中,我如何使用我自己的字体呢?比如我的字体是在/home/www/font/xfont.ttf下面。

请指教,谢谢。

论坛徽章:
0
6 [报告]
发表于 2003-04-09 09:58 |只看该作者

perl如何调用字体文件?

GD这个模块非常有用也很好用,俺作图一般用它。但是对于字体支持不够。至少俺以前用的时候只有大中小3种字体。俺不得不另外找库。

ImageMagik是个万能的图像库,什么都能做,但是比较肥。俺当时用的是Imager。您可以试一下。

论坛徽章:
0
7 [报告]
发表于 2003-04-09 10:45 |只看该作者

perl如何调用字体文件?

能不能给我个例子,比如把我的例子改成使用imagemagick库,谢谢了。。。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
8 [报告]
发表于 2003-04-09 13:32 |只看该作者

perl如何调用字体文件?

http://search.cpan.org/author/MVERB/GDTextUtil-0.85/
用GD的話..請參考上面網頁...
你自己研究一下吧..還要多安裝GD::TextUtil這個module..
才能控制字體...不然default只有很醜的字體...

ImageMagick我以前試過裝在
AIX上面..一直裝不起來...compiler的問題..
不然看書上寫的ImageMagick有一些特殊效果,
蠻不錯的......

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
9 [报告]
发表于 2003-04-09 13:32 |只看该作者

perl如何调用字体文件?

http://search.cpan.org/author/MVERB/GDTextUtil-0.85/
用GD的話..請參考上面網頁...
你自己研究一下吧..還要多安裝GDTextUtil這個module..
才能控制字體...不然default只有很醜的字體...

ImageMagick我以前試過裝在
AIX上面..一直裝不起來...compiler的問題..
不然看書上寫的ImageMagick有一些特殊效果,
蠻不錯的......

论坛徽章:
0
10 [报告]
发表于 2003-04-09 16:34 |只看该作者

perl如何调用字体文件?

用gd:
好像要控制字体一定需要stringttf才行,而我因为没有xwindow所以装不上freetype,没有freetype就不能用stringttf,所以就。。。

用ImageMagick:
使用Annotate函数无法写字

代码如下:
#!/usr/bin/perl
print "Content-type: image/gif\n\n";
use Image::Magick;
$image=Image::Magick->;new(size=>;'100x100');
$image->;ReadImage('xc:black');
$text = 'Works like magick!';
$image->;Annotate(font=>;'/home/www/font/alien.ttf', pointsize=>;10, fill=>;'green', text=>;"test";
binmode STDOUT;
$image->;Write('gif:-');
exit;

太烦了,我要疯了。。。

那么简单的功能,竟然搞的如此复杂,而且还无法实现。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP