Perl GD不会绘制圆圈,而是每次都绘制一个矩形

时间:2013-07-30 13:16:08

标签: image perl gd

我最近发现了Perl模块GD,我想尝试一下。 到目前为止,我没有遇到任何创建新对象,分配颜色和将整组数据重定向到文件的问题。 当我在查看器中打开图像文件时出现了问题: 无论我改变什么,它只显示一个矩形。为了取笑我,它只有正确的颜色(蓝色)。

有什么问题?圆的创建不正确吗?

我会继续努力,但感谢任何帮助。 在此先感谢您的帮助!

到目前为止,这是我的代码:

my $image1 = new GD::Image(100,100);
my $blue = $image1->colorAllocate(0,0,255);
$image1->arc(100,100,50,50,0,360,$blue);
my $print = $image1->png;

open(IMG,">","/home/bernd/perl/pie.png");
binmode IMG;
print IMG $print;
close(IMG);

2 个答案:

答案 0 :(得分:2)

我认为问题在于背景和前景是相同的颜色。

这是一个在透明图上绘制蓝色圆圈的工作示例 背景:

use GD::Image;
use File::Slurp;

my $image1 = GD::Image->new(100,100);
my $white = $image1->colorAllocate(255,255,255);
my $blue = $image1->colorAllocate(0,0,255);
$image1->transparent($white);
$image1->interlaced('true');

$image1->arc(50,50,100,100,0,360,$blue);

write_file("/home/bernd/perl/pie.png", $image1->png);

我还更新了对象创建,以避免使用间接 不建议使用new GD::Image()的对象表示法样式。 File::Slurp用于清理写出文件。

如果您不熟悉使用Perl进行图像处理,我建议您使用 还可以看看Imager.pm,它有更现代的设计。

答案 1 :(得分:0)

尝试添加:

my $image1 = new GD::Image(100,100);
my $white = $image1->colorAllocate(255,255,255);
my $blue = $image1->colorAllocate(0,0,255);

您正在绘制与背景颜色相同的弧