如何将我的十六进制颜色(例如,0000FF,FF00FF)转换为算术RGB格式(例如,0 0 1,1 0 1)?
我想在我的一些perl脚本中实现一个命令来执行此操作,但我甚至不知道如何手动执行此操作.
有人可以请帮我在perl中执行此操作,或者甚至告诉我如何手动执行此操作以便我可以提出自己的perl命令吗?
ike*_*ami 10
假设您正在尝试将00..FF 16映射到实数0..1,
my @rgb = map $_ / 255, unpack 'C*', pack 'H*', $rgb_hex;
Run Code Online (Sandbox Code Playgroud)
pack 'H*',
改变"FF00FF"
为"\xFF\x00\xFF"
.unpack 'C*',
改变"\xFF\x00\xFF"
为0xFF, 0x00, 0xFF
.map $_ / 255,
改变0xFF, 0x00, 0xFF
为0xFF/255, 0x00/255, 0xFF/255
已经有一个CPAN模块可以满足您的需求:https://metacpan.org/pod/Color :::Rgb
use Color::Rgb;
my $hex = '#0000FF';
my @rgb = $rgb->hex2rgb($hex); # returns list of 0, 0, 255
my $rgb_string = $rgb->hex2rgb($hex,','); # returns string '0,0,255'
Run Code Online (Sandbox Code Playgroud)
它也可以走另一个方向:
my @rgb = (0, 0, 255);
my $hex_string = $rgb->rgb2hex(@rgb); # returns '0000FF'
Run Code Online (Sandbox Code Playgroud)