0

私は HTML5 キャンバスで遊んでみようとしています。また、CSS から fillStyle の色を取得したいと考えていますが、ある程度の透明度も必要です。jQuery を使用して CSS スタイルを読み取ると、16 進数ではなく RGB 値が返されます。

fillColor = $(".myClass").css("background-color"); // return rgb(x, x, x)

最初は、再度変換する必要がないことは便利に見えますが、アルファをRGB値に追加できないことがわかったので、それを16進数に変換してから、アルファ付きのRGBAに変換する必要があります価値。

function convertHexToRGB(hex)
{
    var red = hex.substr(1, 2), green = hex.substr(3, 2), blue = hex.substr(5, 2), alpha = arguments[1];
    color = "rgba(" + parseInt(red, 16) + "," + parseInt(green, 16) + "," + parseInt(blue, 16) + "," + alpha + ")";
    return color;
}

私のコードが悪臭を放って非効率的に見えるようになったので、アルファ値を RGB 値に追加する方法はありますか? または、RGB を RGBA に変換する関数はありますか?

4

1 に答える 1

0

次のようにcssから不透明度の値を取得できませんでした:

fillOpacity = $(".myClass").css("opacity"); // return 0.x

次に、不透明度の値を必要な「A」チャネルに変換します。

var alpha = fillOpacity * 255;

そして、それを RGB 値 (int 形式) に追加しますか?

編集:

HTML5キャンバス要素はビットマップで効果的に機能するため、ビットとボブを組み合わせて実行できますが、(私が知る限り)キャンバスを伝えることができないという点で、レイヤーの直接的な概念はありません。要素の下に結合するものがないため、要素はr、g、b、aになります。もちろん、何らかの形の背景画像の上に半透明のキャンバスを配置しようとしている場合を除きます。または、下にある画像を、元の CSS カラーと乗算ブレンドして、画像の上に半透明のレイヤーの効果を実現します。

于 2012-03-27T20:41:41.170 に答える