如何从 Imager::Color 对象获取颜色十六进制值?

How I get color hex value from an Imager::Color object?

如果我使用 Imager::Color 并定义一个颜色对象,例如:

$color = Imager::Color->new($red, $green, $blue, $alpha);

如何从 $color 中获取十六进制值?

这会忽略 alpha 值,但使用 rgba method from Imager::Color 您可以像这样转换它:

my $hex_color = sprintf '#%02x%02x%02x', ($color->rgba)[0 .. 2];

提取从 $color->rgba 返回的前三个字段并将它们格式化为两位十六进制值。

use Imager;
my $color = Imager::Color->new(64, 250, 150, 1);
say sprintf('#%02x%02x%02x', ($color->rgba)[0 .. 2]);
# → #40fa96