如何使用Perl& amp;创建透明的真彩色PNG GD?

时间:2010-03-24 17:16:48

标签: perl png transparency gd

这似乎是一个微不足道的问题,但我尝试过的任何事情都不会使背景变得透明。

use strict;
use warnings;
use GD

GD::Image->trueColor(1);
my $im = new GD::Image(100, 100);

my $clear = $im->colorAllocateAlpha(255, 255, 255, 127);
my $black = $im->colorAllocateAlpha(0, 0, 0, 0);

$im->alphaBlending(0);
$im->filledRectangle(0, 0, 100, 100, $clear);

$im->alphaBlending(1);
$im->stringFT($black, "a-ttf-font.ttf", 12, 0, 20, 20, "x");

binmode STDOUT;
print $im->png;

感谢任何指导。

1 个答案:

答案 0 :(得分:4)

您使用的是$im->saveAlpha(1)吗?否则,alpha信息仅在构建图像时有用。保存的图像不会透明。

一种快速而肮脏的方法,可能不适合您的目的,是忘记alpha通道并使用GD::Image::transparent方法。