Core Graphics   >     CGImage   >   init(windowListFromArrayScreenBounds:windowArray:imageOption:)
イニシャライザ
init(windowListFromArrayScreenBounds:
windowArray:imageOption:)
指定されたウィンドウの合成イメージを返します。
宣言
パラメータ
screenBounds | キャプチャしたい長方形。長方形の座標は、スクリーンの原点がメインディスプレイの左上隅にあり、y 軸の値が下に向かって増加するスクリーン座標で指定しなければなりません。指定されたウィンドウを囲む最小の長方形を示すには、null を指定します。デスクトップ領域全体をキャプチャするには、infinite を指定します。 |
windowArray | CGWindowID 型の配列。それぞれが情報を取得したいウィンドウに対応します。window ID の順序は、またウィンドウの合成順序にも影響します。この動作の詳細については、議論を参照してください。 |
imageOption | キャプチャするウィンドウの部分を決定するオプション。screenBounds パラメータに null を指定した場合、これらのオプションはイメージに使用される境界ボックスの結果を決定するのに役立ちます。たとえば、イメージにウインドウのスクリーン効果を含めると、その効果に対応するために境界のボックスを少し大きくする必要があります。可能なオプションのリストについては、Window Image Types を参照してください。 |
戻り値
ビットマップイメージマスク。CGImageRelease を呼び出してこのオブジェクトを解放する責任があなたにはあります。
議論
ビットマップイメージマスクは、アーティストがシルクスクリーンやサインを使用するのと同じ方法、または画家がステンシルを使うのと同じ方法で使用されます。ビットマップは、色が転送されるマスクを表します。ビットマップ自体には色がありません。グラフィックス状態で現在設定されている塗りつぶしの色からその色を取得します。
ビットマップイメージマスクを使用してコンテキストに描画する場合、マスクは現在の塗りつぶしの色がイメージの長方形に適用される場所と方法を決定します。マスクの各サンプル値は、現在の塗りつぶしの色が特定の場所でどれだけマスクされるかを指定します。効果的に、サンプル値はマスクの不透明度を指定します。値が大きいほど、不透明度が高くなり、ページに適用される色が少なくなります。
イメージマスクは、成分ごとに 1,2,4 または 8 ビットでなければなりません。1 ビットマスクの場合、サンプル値 1 は、マスクされたマスクの部分を指定します。これらの部分は、現在の塗りつぶしの色をブロックします。サンプル値 0 は、マスクされていないマスクの部分を指定します。これらの部分は、マスクがペイントされたときのグラフィックス状態の現在の塗りつぶし色を示します。サンプル値は逆アルファとして考えることができます。つまり、1 の値は透明で 0 は不透明です。
成分あたり 2,4,8 ビットのイメージマスクの場合、各成分は以下の式を使用してスケールされる 0〜1 の範囲にマッピングされます。
1/(2^bits per component – 1)
たとえば、4 ビットマスクの値の範囲は 0〜15 です。これらの値は、各成分の範囲が 0〜1 になるように 1/15 にスケールされます。0 または 1 に再スケールする成分値は、1 ビットイメージマスクと同じように動作します。0 と 1 の間の値は逆アルファとして機能します。つまり、塗りつぶしの色は、(1 - MaskSampleValue) のアルファ値を持つかのようにペイントされます。たとえば、8 ビットマスクのサンプル値が 0.8 になると、現在の塗りつぶし色は、アルファ値が 0.2、つまり(1-0.8) であるかのようにペイントされます。