我最近发现了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);
答案 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);
您正在绘制与背景颜色相同的弧