如何使用 Perl 和 GD 在另一张图像上绘制半透明形状?

问题描述 投票:0回答:1

我正在尝试使用 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 通道被忽略一样。任何建议将不胜感激。

perl gd
1个回答
0
投票

检查此代码。

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;
© www.soinside.com 2019 - 2024. All rights reserved.