我正在尝试使用 Perl 的 GD.pm 在现有图像上绘制半透明块。
我的代码如下所示:
use strict;
use GD;
my $img = GD::Image->new('cello.png');
GD::Image->trueColor(1);
$img->saveAlpha(1);
my $boxColor = $img->colorClosestAlpha(0,0,0,60);
$img->filledRectangle(0,300,600,400, $boxColor);
open(FH, '>', 'cello2.png') or die $!;
binmode FH;
print FH $img->png();
close FH;
这会在图像上绘制一个黑框,但该框完全不透明,就好像 Alpha 通道被忽略一样。任何建议将不胜感激。
检查此代码。
use strict;
use GD;
my $img = GD::Image->new('cello.png');
GD::Image->trueColor(1);
$img->saveAlpha(1);
my $boxColor = $img->colorAllocateAlpha(0, 0, 0, 60);
$img->filledRectangle(0, 300, 600, 400, $boxColor);
open(my $fh, '>', 'cello2.png') or die $!;
binmode $fh;
print $fh $img->png();
close $fh;