Pixelsクラスは、生の画像ピクセルへの効率的なアクセスを提供します。画像ピクセル(Quantum型)は、Image Pixel Cacheを介して直接アクセスできます。画像ピクセルキャッシュは、実際の画像ピクセル(メモリ内、ディスクファイルからメモリマップされたもの、または完全にディスク上にある場合がある)への長方形のウィンドウ(ビュー)です。既存の画像ピクセルを取得するには、get()を使用します。新しいピクセル領域を作成するには、set()を使用します。
オペレーティングシステムの機能、およびウィンドウと画像の相対関係によっては、ピクセルキャッシュは選択されたウィンドウ内のピクセルのコピーである場合もあれば、実際の画像ピクセルである場合もあります。いずれにしても、sync()を呼び出すと、ベースイメージが変更されたピクセルキャッシュの内容で確実に更新されます。decode()メソッドは、QuantumTypesに従って、外部のピクセルデータ形式をピクセルキャッシュにコピーすることをサポートします。encode()メソッドは、QuantumTypesで指定された形式に従って、キャッシュ内のピクセルを外部のピクセル表現にコピーすることをサポートします。
Pixelsクラスを使用してビューを設定しても、基になる画像への参照数が1つに減ることはありません。したがって、現在の世代の画像のみが変更されるようにするには、ImageのmodifyImage()メソッドを呼び出して、基になる画像への参照カウントを1つに減らす必要があります。これを行わないと、Imageのコピーまたは構築時に参照カウントが使用されるため、以前の世代の画像が変更される可能性があります。
setおよびgetメソッドによって返されるQuantum*と、indexesメソッドによって返されるvoid*は、Pixelsクラスによって管理されるピクセルデータを指します。Pixelsクラスは、ピクセルビューに関連付けられたリソースを解放する責任があります。つまり、ポインタは決してdelete()またはfree()に渡してはいけません。
ピクセルビューは小さな画像であり、次の例に示すように、ピクセルにアクセス、アドレス指定、および更新できます。これは、右側の画像(線とテキストを除く)に似た画像を生成します。
Pixelsは次のメソッドをサポートします
ピクセルキャッシュメソッド
メソッド |
戻り値 |
シグネチャ |
説明 |
const ssize_t x_, const ssize_t y_, const size_t columns_, const size_t rows_ |
指定された長方形領域で定義されるように、読み取り/書き込みピクセルをイメージからピクセルキャッシュに転送します。変更されたピクセルは、syncを介して後でイメージに戻すことができます。返される値は、ピクセルアクセスのみを目的としています。決して解放しないでください。 |
||
const Quantum* |
const ssize_t x_, const ssize_t y_, const size_t columns_, const size_t rows_ |
指定された長方形領域で定義されるように、読み取り専用ピクセルをイメージからピクセルキャッシュに転送します。 |
|
const ssize_t x_, const ssize_t y_, const size_t columns_, const size_t rows_ |
領域の長方形で定義されるように、画像ピクセルを格納するためのピクセルキャッシュ領域を割り当てます。この領域は、syncを介して後でピクセルキャッシュからイメージに転送されます。返される値は、ピクセルアクセスのみを目的としています。決して解放しないでください。 |
||
void |
void |
イメージキャッシュピクセルをイメージに転送します。 |
|
void* |
void |
最後のget、getConst、またはset呼び出しによって定義されたピクセル領域に対応するPsuedoColorピクセルインデックスを返します。PseudoColorおよびCMYKA画像でのみ有効です。ピクセルインデックス(タイプvoidの配列。これはtypedef Quantumであり、QuantumDepth定義の値に応じてtypedef unsigned charまたはunsigned shortです)は、イメージ内の各ピクセルのカラーマップインデックス(colorMapを参照)を提供します。CMYKA画像の場合、インデックスは黒チャネルを表します。返される値は、ピクセルアクセスのみを目的としています。決して解放しないでください。 |
|
int |
void |
ビューの左の座標 |
|
int |
void |
ビューの上部座標 |
|
size_t |
void |
ビューの幅 |
|
size_t |
void |
ビューの高さ |