如何使用 Perl 和 Perl 创建透明的真彩色 PNG 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;
感谢您的任何指导。
It seems like a trivial problem, but nothing I've tried will make the background transparent.
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;
Thanks for any guidance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您使用的是
$im->saveAlpha(1)
吗?否则,alpha 信息仅在构建图像时有用。保存的图像不会是透明的。一个快速而肮脏的方法可能不足以满足您的目的,那就是忘记 alpha 通道并使用
GD::Image::transparent
方法。Are you using
$im->saveAlpha(1)
? Otherwise the alpha information is only useful in constructing the image. The saved image won't be transparent.A quick and dirty method, which might not be good enough for your purposes, is to forget about the alpha channel and use the
GD::Image::transparent
method.