代码之家  ›  专栏  ›  技术社区  ›  lexu

Perl:将(x,y)像素绘制为单色位图的推荐方法

  •  8
  • lexu  · 技术社区  · 16 年前

    对于一个家庭项目,我需要将(x,y)坐标绘制到400x400黑白位图上。

    您将重新编写什么Perl模块和什么图像格式(GIF)?,巴布亚新几内亚?其他?)在OS X、Windows、Linux上最容易处理吗?


    编辑 我的解决方案,基于gd,由Brian Agnew提出


    use strict;
    use warnings;
    use GD;
    my $BitMap = GD::Image->new(400,400);
    
    my $white = $BitMap->colorAllocate(255,255,255);
    my $black = $BitMap->colorAllocate(0,0,0);       
    
    # Frame the BitMap
    $BitMap->rectangle(0,0,399,399,$black);
    # Transparent image, white background color
    $BitMap->transparent($white);
    
    # plot some, just to show it works #
    for my $x (0..100) {
       for my $y (0 .. 100) {
          $BitMap->setPixel(250+100*sin($x)-$y,150+125*cos($x)+$y,$black); 
       }
    }
    
    # write png-format to file
    open my $fh,">","test.png" or die "$!";
    binmode $fh;
    print $fh $BitMap->png;
    close($fh);
    

    1 回复  |  直到 7 年前
        1
  •  9
  •   Seki    7 年前

    看看 GD module (哪个接口 GD library )它使得创建图形变得非常简单,并具有广泛的输出格式,包括PNG和GIF。