1. ホーム
  2. javascript

[解決済み] 16進数からRGBAへの変換

2022-10-24 02:45:21

質問

私のバイオリン http://jsbin.com/pitu/1/edit

私は簡単に hex から rgba への変換を試したいと思いました。私が使用してきたブラウザは、デフォルトで rgb を使用して色をレンダリングするので、farbtastic カラー ピッカーを使用するときは、(デフォルトで rgb として) 16 値が生成する背景色を取得することにより、16 値を rgb に変換していました。

を置き換えてみました。 ) という記号を , 1) に変換しましたが、うまくいかなかったので、rgbをrgbaに変換するとどうなるのかだけ確認しに行きましたが、まだ問題があります。

jqueryの

$('.torgb').val($('#color').css('background-color'));
$('.torgba').val().replace(/rgb/g,"rgba");

ゴール

EDIT :

タイニーカラー このライブラリは、私が欲しいものすべてを実現し、さらに多くのことを行うことができる素晴らしい色操作のjsライブラリです。皆さんも試してみてはいかがでしょうか?- https://github.com/bgrins/TinyColor

どのように解決するのですか?

//If you write your own code, remember hex color shortcuts (eg., #fff, #000)

function hexToRgbA(hex){
    var c;
    if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){
        c= hex.substring(1).split('');
        if(c.length== 3){
            c= [c[0], c[0], c[1], c[1], c[2], c[2]];
        }
        c= '0x'+c.join('');
        return 'rgba('+[(c>>16)&255, (c>>8)&255, c&255].join(',')+',1)';
    }
    throw new Error('Bad Hex');
}

hexToRgbA('#fbafff')

/*  returned value: (String)
rgba(251,175,255,1)
*/