如何从 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
如果我使用 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