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

Posted

技术标签:

【中文标题】如何使用 Perl 和 GD 创建透明的真彩色 PNG?【英文标题】:How do you create a transparent truecolor PNG with Perl & GD? 【发布时间】:2010-03-24 17:16:48 【问题描述】:

这似乎是一个微不足道的问题,但我没有尝试过使背景透明。

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 您必须使用strictwarnings。您发布的代码必须是您运行的代码。你有$image$im$img。什么弗拉克? 这是我运行的一些代码。固定。 我是否正确理解您希望文本显示为灰色?哦,我忘记投票了。 我正在寻找一个具有完全透明背景和抗锯齿黑色文本的 PNG。不过,透明背景是我的主要目标。 【参考方案1】:

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

一种快速而肮脏的方法可能不足以满足您的目的,即忘记 Alpha 通道并使用 GD::Image::transparent 方法。

【讨论】:

谢谢,就是这个!不敢相信我没有发现。

以上是关于如何使用 Perl 和 GD 创建透明的真彩色 PNG?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 GD 或 Imagick 在非透明纯色图像内创建透明区域?

如何使用 GD 使用 PHP 创建透明背景?

使用 Perl/GD 创建图像并将其直接插入到 Excel 工作簿中?

如何使用 Strawberry Perl 安装 GD 库

如何摆脱 Perl GD::Graph 中的饼图轮廓?

PHP GD从创建的PNG修剪透明像素