getPixel32() と Bitmap および Bitmap Data クラスを勉強しています。基本的に、16 進数値から ARGB の単純なトレースを出力する方法を知りたいです。
余談ですが、私は間違っていると思いますが、16 進数値は RGBA 値ほど多くの色を生成できないという印象を受けています。おそらく、「Webセーフ」は、16進数値で生成される色を使用する有用性または欲求を理解することで私を失望させました。
getPixel32() と Bitmap および Bitmap Data クラスを勉強しています。基本的に、16 進数値から ARGB の単純なトレースを出力する方法を知りたいです。
余談ですが、私は間違っていると思いますが、16 進数値は RGBA 値ほど多くの色を生成できないという印象を受けています。おそらく、「Webセーフ」は、16進数値で生成される色を使用する有用性または欲求を理解することで私を失望させました。
色情報を抽出するには、ビット演算子を使用する必要があります。色は0xAARRGGBBのように保存されるため、これらの部分を抽出する必要があります。小さなスニペットがその役割を果たします。
var hex: uint = 0x00ff00ff;
var a: int = (hex >>> 0x18) & 0xff;
var r: int = (hex >>> 0x10) & 0xff;
var g: int = (hex >>> 0x08) & 0xff;
var b: int = hex & 0xff;
trace(a, r, g, b);
RGBA値の指定方法によっては、答えが変わる場合があります。各チャネルが1バイトで指定されるRGBA値を使用する場合、16進値とまったく同じ量の色を表現できます。「16進値」は、4バイトで構成される符号なし整数です。Flashには、64ビットで構成されるNumberタイプもあるため、各チャネルは1バイトではなく8バイトで表現されます。あなたはあなたがはるかに正確であると想像することができます。ただし、画面が「トゥルーカラー(32ビット)」に設定されている可能性があり、その数の色を表示することはできません。倍精度(64ビット)を超えて、主に財務計算に使用される10進精度を使用します。各値は128ビットで構成され、チャネルごとに16バイトになります。これは、16進表現を使用する場合の16倍です。
サイドノート。画像サイズも幅高さチャンネル*(チャンネルあたりのバイト数)です。したがって、チャネルごとに1バイト(8ビット)を使用すると、すでに十分な色が得られます。大きな画像の場合、チャネルごとに8ビットから32ビットに変更すると、違いは非常に大きくなります。
8ビット精度の1024x768イメージは3072kbですが、同じ32ビットイメージはメモリ内で12288kbです。その同じ画像は、FlashのNumberタイプを使用すると24576kbを占めます。したがって、ほとんどの場合、8ビットの精度で十分なはずです。
これがお役に立てば幸いです。画像とその構造について理解を深めていただければ幸いです。