1

html5 キャンバスでピクセルを操作しようとしています。メソッド getImageData を使用すると、キャンバスの RGBA 値を持つ Uint8Array のみを取得できます。より精度の高い配列を取得する可能性はありますか? 画像のすべての 16 ビット カラー値を操作したいと思います。

4

2 に答える 2

2

いいえ、キャンバス コンテキストの色空間は CSS の色値の色空間と一致する必要があるためです。

CSS をサポートするユーザー エージェントでは、canvas 要素で使用される色空間は、CSS でその要素の色を処理するために使用される色空間と一致する必要があります。

また、 の現在の仕様でImageDataは、8 ビット配列のみが提供されます。

interface ImageData {
  readonly attribute unsigned long width;
  readonly attribute unsigned long height;
  readonly attribute Uint8ClampedArray data;
};

参考文献

于 2013-01-10T10:20:52.747 に答える
0

現在、ほとんどのディスプレイ システムの通常の色解像度は、カラー チャネルおよびピクセルあたり 8 ビット (RGBA ピクセルあたり 32 ビット) であり、人間の目ははるかに小さい色のニュアンスを区別できないため、近い将来に増加する可能性は低いです。そのため、getImageData と setImageData はカラー チャネルごとに 8 ビットで動作します。

より高い色解像度は通常、画像処理にのみ必要です。内部でチャネルあたり 16 ビット以上で画像処理操作を実行する場合は、いつでも getImageData によって返される値を自分で変換し、setImageData で返す前にそれらを 8 ビットに戻すことができます。

于 2013-01-10T10:26:39.967 に答える