2

ImageMagickのperlAPIを使用しています。RGBスキームでカラー値を受け取りますが、Webサイトで使用するには16進値を取得する必要があります(例#FFA8F5)。

RGBカラー値を16進カラー値に簡単に変換するにはどうすればよいですか?

4

3 に答える 3

6

使用printfまたはフォーマットでsprintf%x

my ($r,$g,$b) = (12,102,250);
printf("#%02x%02x%02x",$r,$g,$b);

出力:

#0c66fa
于 2012-09-12T08:40:51.087 に答える
3

これを行う1つの方法は次のとおりです。

my @rgb     = (102, 205, 0);
my $hex_rgb = sprintf "#%02X%02X%02X", @rgb;
于 2012-09-12T10:49:36.393 に答える
2
function colorToHex(color) {
    if (color.substr(0, 1) === '#') {
        return color;
    }
    var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color),

        red = parseInt(digits[2], 10),
        green = parseInt(digits[3], 10),
        blue = parseInt(digits[4], 10),

        rgb = blue | (green << 8) | (red << 16);
    return digits[1] + '#' + rgb.toString(16);
}

フィドル

于 2012-09-12T08:13:04.083 に答える