Q:
CGContextRef に CGImageRef を描画するときに、Quartz 2D の補間を制御するにはどうしたらよいのでしょうか?
A:
画像の補間の度合い(アンチエイリアスの質)を制御するには、まず、(各種の CGImageCreateXYZ 関数の shouldInterpolate パラメータに true を渡すことによって)補間処理を有効にして画像を作成する必要があります。その後、CGContextSetInterpolationQuality を呼び出すことによって、目的のコンテキストにおける補間の質を指定できます。以下に、現在サポートされている補間の質の度合いを示します。
kCGInterpolationDefault | 目的のデバイスの情報に基づいてコンテキストに決定させます。一般に、中程度の質で適度な速度の補間を行います。 |
kCGInterpolationNone | 補間を行いません。 |
kCGInterpolationLow | 高速で質の低い補間を行います。 |
kCGInterpolationHigh | 低速で高い質の補間を行います。 |
すべてのコンテキストがすべての水準の補間をサポートしているわけではないため、補間の質の設定は、コンテキストへの手がかりにすぎません。
CGImageRef は「CGImage.h」ヘッダファイルで定義されており、CGContextSetInterpolationQuality は「CGContext.h」ヘッダファイルに書かれています。
Quartz 2D の詳細については、Quartz 2D reference page を参照してください。
複雑なものに関しては、補間は、既知の値の間の関数値を計算する処理になります(WordNet ® 1.6 © 1997 プリンストン大学)。
グラフィックスプログラミングでは、補間はデジタル画像のリサンプリングに使われる一般的な方法です。既存の値の間の新しいピクセル値を予測し、挿入する処理が行われます。さまざまな補間アルゴリズムは、レンダリング速度と、最終的な画像に求める品質とのトレードオフでさまざまな補間アルゴリズムが使われます。
[2002 年 10 月 29 日]
|