如何将Hex转换为RGB?(perl的)

Iza*_*son 4 rgb perl hex

如何将我的十六进制颜色(例如,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, 0xFF0xFF/255, 0x00/255, 0xFF/255


Hun*_*len 9

已经有一个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)