Chinaunix首页 | 论坛 | 博客
  • 博客访问: 520643
  • 博文数量: 102
  • 博客积分: 950
  • 博客等级: 准尉
  • 技术积分: 1094
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-28 16:07
文章分类

全部博文(102)

文章存档

2020年(2)

2016年(5)

2015年(15)

2014年(25)

2013年(18)

2012年(19)

2011年(18)

我的朋友

分类: LINUX

2012-02-27 14:51:20

使用GD画简单的表格

点击(此处)折叠或打开

  1. use GD;
  2. use Encode;
  3. use GD::Polyline;
  4. use constant font => '/tmp/MSYH.TTF'; #用微软雅黑字体

  5. my $im = new GD::Image($with,$length);
  6. my ($white,$black,$red,$blue,$yellow) =
  7. (
  8.     $im->colorAllocate(255, 255, 255),
  9.     $im->colorAllocate(0, 0, 0),
  10.     $im->colorAllocate(255, 0, 0),
  11.     $im->colorAllocate(0,0,255),
  12.     $im->colorAllocate(255,250,205)
  13. );

       #画横线,间隔20个像素

  1. for (my $i=0;$i<=$length;$i+=20)
  2. {
  3.      my $line= new GD::Polyline;
  4.     $line->addPt(0,$i);      #从哪画,前面是(0,x)表示从左到右画横线
  5.     $line->addPt($with,$i);  #画多长 
  6.     $im->polyline($line,$red); #线是红色
  7.     $im->fill(10,$i-1,$yellow) if ($i%40==0); #各行填充颜色为黄色
  8.     # $im->fill(10,$i-1,$white) if ($i%40>0);
  9.     $im->polyline($line,gdBrushed); #刷
  10. }
  11. #画表格的列,共6列
  12. my @j=(0,70,130,190,250,310,380);
  13. foreach my $j (@j)
  14. {
  15.     my $line= new GD::Polyline;
  16.     $line->addPt($j,0);            #后面是(x,0),表示从上到下画竖线
  17.     $line->addPt($j,$length);      #从(0,0)(70,0)(130,0)往下画length长度
  18.     $im->polyline($line,$red);     #线是红色属性
  19.     $im->polyline($line,gdBrushed);#开始刷brush
  20. }
  21. #填充单元格

$im->fill(132,62,$blue);
$im->fill(100,70,$red);

open (OUT,">$ARGV[1]");

my @out = <>;
for (my $z=0;$z<7;$z++)
{

 my $n=$z*20+18;
 my $m=$j[$z]+3;
 my $out=decode("gb2312",$out[$z]); #编码

   $im->stringTTF($black,font,10.0,0.0,$m,$n,"$out") || die $@; #写字,通过x,y定位
}

  1. binmode STDOUT;
  2. # print the image to stdout
    print OUT $im->png;
    close OUT;

 
 
简单的图形命令:
convert
 
GNUPlot
适合做科学计算绘图,曲线图
 
 
Graphviz
graphviz的好处在于,你只需要关心数据结构的流程,或者连接的方式,而不需要考虑布局。这是经典的*nix的程序的工作方式,比如latex, mate等等,都是采用这种方式来工作的。既可以达到WYTIWYG(What you think is what you get),而不是微软所提倡的WYSIWYG(What you see is what you get).
 

khtml2png是一种常用的命令行网页截图程序,不过需要安装庞大的KDE。

使用方法: khtml2png --width 1024 --height 768 --scaled-width 320 --scaled-height 240 oschina.png

阅读(892) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~