|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.awt.RenderingHints
public class RenderingHints
RenderingHints
クラスは、キーと関連付けられた値のコレクションを定義および管理します。アプリケーションは、これらのコレクションを使用して、描画およびイメージ操作のサービスを実行するその他のクラスで使用されるアルゴリズムの選択についての情報を提供できます。Graphics2D
クラス、および BufferedImageOp
と RasterOp
を実装するクラスのすべてで、RenderingHints
キーとそれに関連付けられた値を個別にまたはグループで取得するメソッドや、場合によってはそれらを設定するメソッドを提供します。これらの実装により描画またはイメージ操作の演算を実行するときは、呼び出し元が要求した RenderingHints
の値を調べ、それに応じて使用されるアルゴリズムの能力が最高になるようにアルゴリズムを調整するようにしてください。
これらのキーと値はヒントなので、ある特定の実装で、後述する可能なすべての選択肢をサポートしたり、そのアルゴリズムの選択肢を修正する要求に対応できるようにしたりする必要はありません。さまざまなヒントキーの値が相互に作用して、ある状況ではその特定のキーのすべてのバリアントがサポートされる一方で、ほかのキーと関連付けられた値が変更されると実装がより制限される場合もあります。たとえば一部の実装では、アンチエイリアスヒントがオフのときは数種類のディザリングを提供できますが、オンのときはディザリングをほとんど制御できません。サポートされるキーとヒントの完全なセットは、描画先によって異なる場合があります。これは、ランタイムでは画面や BufferedImage
オブジェクトへの描画時、または印刷時に、さまざまな基本モジュールを使用することがあるためです。
実装では、ヒントを完全に無視してもかまいませんが、要求にできるだけ近い実装アルゴリズムを使用するようにしてください。関連付けられたヒントキーに任意の値が使用されるときに特定のアルゴリズムが実装でサポートされる場合、そのヒントキーの値がそのアルゴリズムを指定する正確な値であるときには、そのようにすることが最低限必要です。
ヒントを制御するために使用されるキーは、すべて関連付けられた RenderingHints.Key
クラスをサブクラス化した特殊な値です。一般的なヒントの多くはこのクラスの静的定数として後述しますが、すべてを網羅しているわけではありません。その他のヒントは、ほかのパッケージで Key
クラスをサブクラス化する新しいオブジェクトを定義して、関連する値を定義することにより作成できます。
入れ子のクラスの概要 | |
---|---|
static class |
RenderingHints.Key
描画とイメージングのパイプラインのさまざまなアルゴリズムの選択を制御するために RenderingHints クラスとともに使用される、すべてのキーの基底型を定義します。 |
インタフェース java.util.Map から継承された入れ子のクラス/インタフェース |
---|
Map.Entry<K,V> |
フィールドの概要 | |
---|---|
static RenderingHints.Key |
KEY_ALPHA_INTERPOLATION
アルファ補間のヒントキーです。 |
static RenderingHints.Key |
KEY_ANTIALIASING
アンチエイリアスのヒントキーです。 |
static RenderingHints.Key |
KEY_COLOR_RENDERING
カラー描画のヒントキーです。 |
static RenderingHints.Key |
KEY_DITHERING
ディザリングのヒントキーです。 |
static RenderingHints.Key |
KEY_FRACTIONALMETRICS
フォント部分メトリックスのヒントキーです。 |
static RenderingHints.Key |
KEY_INTERPOLATION
補間のヒントキーです。 |
static RenderingHints.Key |
KEY_RENDERING
描画ヒントキーです。 |
static RenderingHints.Key |
KEY_STROKE_CONTROL
ストローク正規化コントロールのヒントキーです。 |
static RenderingHints.Key |
KEY_TEXT_ANTIALIASING
テキストアンチエイリアスのヒントキーです。 |
static RenderingHints.Key |
KEY_TEXT_LCD_CONTRAST
LCD テキストコントラストの描画ヒントキーです。 |
static Object |
VALUE_ALPHA_INTERPOLATION_DEFAULT
アルファ補間のヒント値で、パフォーマンスと品質の兼ね合いが適切になるように、実装によってアルファブレンディングアルゴリズムが選択されます。 |
static Object |
VALUE_ALPHA_INTERPOLATION_QUALITY
アルファ補間のヒント値で、精度と表示品質の設定に合わせてアルファブレンディングアルゴリズムが選択されます。 |
static Object |
VALUE_ALPHA_INTERPOLATION_SPEED
アルファ補間のヒント値で、計算速度の設定に合わせてアルファブレンディングアルゴリズムが選択されます。 |
static Object |
VALUE_ANTIALIAS_DEFAULT
アンチエイリアスのヒント値で、描画は実装で選択されたデフォルトのアンチエイリアスモードを使って行われます。 |
static Object |
VALUE_ANTIALIAS_OFF
アンチエイリアスのヒント値で、描画はアンチエイリアスなしで行われます。 |
static Object |
VALUE_ANTIALIAS_ON
アンチエイリアスのヒント値で、描画はアンチエイリアスを使って行われます。 |
static Object |
VALUE_COLOR_RENDER_DEFAULT
カラー描画ヒント値で、実装で選択された色変換の計算を実行し、パフォーマンスと精度の間で最適な兼ね合いを表現します。 |
static Object |
VALUE_COLOR_RENDER_QUALITY
カラー描画ヒント値で、精度と表示品質がもっとも高い色変換の計算を実行します。 |
static Object |
VALUE_COLOR_RENDER_SPEED
カラー描画ヒント値で、出力デバイスの形式へのもっとも高速な色変換を実行します。 |
static Object |
VALUE_DITHER_DEFAULT
ディザリングのヒント値で、ディザリングに実装で選択されたデフォルトを使用します。 |
static Object |
VALUE_DITHER_DISABLE
ディザリングのヒント値で、幾何学的図形の描画時にディザリングを行いません。 |
static Object |
VALUE_DITHER_ENABLE
ディザリングのヒント値で、必要に応じて幾何学的図形の描画時にディザリングを行います。 |
static Object |
VALUE_FRACTIONALMETRICS_DEFAULT
フォント部分メトリックスのヒント値で、文字グリフは、実装によって選択された精度で配置されます。 |
static Object |
VALUE_FRACTIONALMETRICS_OFF
フォント部分メトリックスのヒント値で、文字グリフは、ピクセル境界に丸められた有効幅で配置されます。 |
static Object |
VALUE_FRACTIONALMETRICS_ON
フォント部分メトリックスのヒント値で、文字グリフは、サブピクセル精度で配置されます。 |
static Object |
VALUE_INTERPOLATION_BICUBIC
補間のヒントキーで、イメージ内で隣接する 9 つの整数座標サンプルのカラーサンプルが X と Y の両方で 3 次関数を使用して補間され、カラーサンプルが生成されます。 |
static Object |
VALUE_INTERPOLATION_BILINEAR
補間のヒントキーで、イメージ内でもっとも近い隣接する 4 つの整数座標サンプルのカラーサンプルが線形に補間されて、カラーサンプルが生成されます。 |
static Object |
VALUE_INTERPOLATION_NEAREST_NEIGHBOR
補間のヒントキーで、イメージ内でもっとも近い隣接する整数座標サンプルのカラーサンプルが使用されます。 |
static Object |
VALUE_RENDER_DEFAULT
描画ヒント値で、パフォーマンスと品質の兼ね合いが適切になるように、実装によって描画アルゴリズムが選択されます。 |
static Object |
VALUE_RENDER_QUALITY
描画ヒント値で、出力品質の設定に合わせて描画アルゴリズムが選択されます。 |
static Object |
VALUE_RENDER_SPEED
描画ヒント値で、出力速度の設定に合わせて描画アルゴリズムが選択されます。 |
static Object |
VALUE_STROKE_DEFAULT
ストローク正規化コントロールのヒント値で、実装での兼ね合いに応じて、幾何学的図形は修正されることも、そのままになることもあります。 |
static Object |
VALUE_STROKE_NORMALIZE
ストローク正規化コントロールのヒント値で、線の一貫性または間隔、および全体的な美観を改善するために、幾何学的図形は正規化されなければいけません。 |
static Object |
VALUE_STROKE_PURE
ストローク正規化コントロールのヒント値で、幾何学的図形は修正されずに、サブピクセル精度で描画されなければいけません。 |
static Object |
VALUE_TEXT_ANTIALIAS_DEFAULT
テキストアンチエイリアスのヒント値で、テキスト描画は KEY_ANTIALIASING ヒントまたは実装で選択されたデフォルトに従って行われます。 |
static Object |
VALUE_TEXT_ANTIALIAS_GASP
テキストのアンチエイリアスのヒント値で、テキスト描画は、 VALUE_TEXT_ANTIALIAS_ON と VALUE_TEXT_ANTIALIAS_OFF のどちらを適用するかについて、ポイントサイズごとに指定するフォントリソース内の情報を使用することが要求されます。 |
static Object |
VALUE_TEXT_ANTIALIAS_LCD_HBGR
テキストアンチエイリアスのヒント値で、LCD ディスプレイに適した状態でテキストを表示するように要求します。 |
static Object |
VALUE_TEXT_ANTIALIAS_LCD_HRGB
テキストアンチエイリアスのヒント値で、LCD ディスプレイに適した状態でテキストを表示するように要求します。 |
static Object |
VALUE_TEXT_ANTIALIAS_LCD_VBGR
テキストアンチエイリアスのヒント値で、LCD ディスプレイに適した状態でテキストを表示するように要求します。 |
static Object |
VALUE_TEXT_ANTIALIAS_LCD_VRGB
テキストアンチエイリアスのヒント値で、LCD ディスプレイに適した状態でテキストを表示するように要求します。 |
static Object |
VALUE_TEXT_ANTIALIAS_OFF
テキストアンチエイリアスのヒント値で、テキスト描画はアンチエイリアスを一切使わずに行われます。 |
static Object |
VALUE_TEXT_ANTIALIAS_ON
テキストアンチエイリアスのヒント値で、テキスト描画はなんらかの形式のアンチエイリアスを使って行われます。 |
コンストラクタの概要 | |
---|---|
RenderingHints(Map<RenderingHints.Key,?> init)
キーと値を指定された Map オブジェクト (null の場合もある) から初期化して、オブジェクトを新しく構築します。 |
|
RenderingHints(RenderingHints.Key key,
Object value)
指定されたキーと値のペアでオブジェクトを新しく作成します。 |
メソッドの概要 | |
---|---|
void |
add(RenderingHints hints)
指定された RenderingHints オブジェクトからすべてのキーとその対応する値をこの RenderingHints オブジェクトに追加します。 |
void |
clear()
この RenderingHints オブジェクトからすべてのキーと値のペアを削除します。 |
Object |
clone()
この RenderingHints オブジェクトと同一の内容を持つ、この RenderingHints のクローン (複製) を作成します。 |
boolean |
containsKey(Object key)
この RenderingHints 内に、指定されたキーのマッピングが含まれている場合に true を返します。 |
boolean |
containsValue(Object value)
この RenderingHints が指定された値に 1 つ以上のキーをマッピングしている場合に true を返します。 |
Set<Map.Entry<Object,Object>> |
entrySet()
この RenderingHints に格納されているマッピングの Set ビューを返します。 |
boolean |
equals(Object o)
指定された Object とこの RenderingHints が等しいかどうかを比較します。 |
Object |
get(Object key)
指定されたキーがマッピングされている値を返します。 |
int |
hashCode()
この RenderingHints のハッシュコード値を返します。 |
boolean |
isEmpty()
この RenderingHints 内にキーと値のマッピングがない場合に true を返します。 |
Set<Object> |
keySet()
この RenderingHints に格納されている Key の Set ビューを返します。 |
Object |
put(Object key,
Object value)
この RenderingHints オブジェクトで、指定された key を指定された value にマッピングします。 |
void |
putAll(Map<?,?> m)
指定された Map からすべてのマッピングをこの RenderingHints にコピーします。 |
Object |
remove(Object key)
この RenderingHints オブジェクトから、指定されたキーとその対応する値を削除します。 |
int |
size()
この RenderingHints 内のキーと値のマッピングの数を返します。 |
String |
toString()
この RenderingHints オブジェクトのキーと値のマッピングを格納するハッシュマップの比較的長い文字列表現を返します。 |
Collection<Object> |
values()
この RenderingHints に格納されている値の Collection ビューを返します。 |
クラス java.lang.Object から継承されたメソッド |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
フィールドの詳細 |
---|
public static final RenderingHints.Key KEY_ANTIALIASING
ANTIALIASING
ヒントは、Graphics2D
オブジェクトの幾何学的図形の描画方法で、形状の端でのエイリアシングアーティファクトを減らすよう試みるかどうかを制御します。
一般的なアンチエイリアスアルゴリズムの動作では、形状の推定される部分ピクセルカバレージに応じて、形状の境界に沿ったピクセルの既存の色を、要求された塗りつぶしペイントとブレンドします。
このヒントでは、次の値を使用できます。
public static final Object VALUE_ANTIALIAS_ON
KEY_ANTIALIASING
public static final Object VALUE_ANTIALIAS_OFF
KEY_ANTIALIASING
public static final Object VALUE_ANTIALIAS_DEFAULT
KEY_ANTIALIASING
public static final RenderingHints.Key KEY_RENDERING
RENDERING
ヒントは汎用ヒントであり、アルゴリズムの選択で速度と品質のどちらを重視するか、その兼ね合いを評価するときに、高いレベルの推奨内容を提供します。このヒントは、描画やイメージ操作の演算で参照されることもありますが、判断する際は、通常、その他のより詳細なヒントがこのヒントよりも優先されます。
このヒントでは、次の値を使用できます。
public static final Object VALUE_RENDER_SPEED
KEY_RENDERING
public static final Object VALUE_RENDER_QUALITY
KEY_RENDERING
public static final Object VALUE_RENDER_DEFAULT
KEY_RENDERING
public static final RenderingHints.Key KEY_DITHERING
DITHERING
ヒントは、カラー解像度が限定されている描画先に色を格納するときに、その色を近似する程度を制御します。
一部の描画先では、サポートされている色の選択肢の数が限定されているため、描画演算中に色の完全なスペクトルを正確に表すことができない場合があります。このような描画先に対して DITHERING
ヒントは、サポートされる色のうち要求された色にもっとも近い色で単一ピクセル値を均一に塗りつぶして描画するか、またはその色を最適に近似するために組み合わせる色のパターンで形状を塗りつぶすかを制御します。
このヒントでは、次の値を使用できます。
public static final Object VALUE_DITHER_DISABLE
KEY_DITHERING
public static final Object VALUE_DITHER_ENABLE
KEY_DITHERING
public static final Object VALUE_DITHER_DEFAULT
KEY_DITHERING
public static final RenderingHints.Key KEY_TEXT_ANTIALIASING
TEXT_ANTIALIASING
ヒントは、形状の描画に使用する設定とは独立して、テキストのアンチエイリアスアルゴリズムの使用を制御できます。アプリケーションでは、テキストだけにアンチエイリアスを使用し、その他の形状にはアンチエイリアスを使用しない場合があります。また、テキストのエイリアシングアーティファクトを減らすアルゴリズムのほうが、汎用の描画処理用に開発されたアルゴリズムよりも高性能である場合もあります。そのため、このヒントキーでは追加の値を提供して、テキスト固有のアルゴリズムについて一部の選択肢を制御できます。DEFAULT
の状態のままである場合、一般にこのヒントは、通常の KEY_ANTIALIASING
ヒントキーの値に従います。
このヒントでは、次の値を使用できます。
VALUE_TEXT_ANTIALIAS_ON
VALUE_TEXT_ANTIALIAS_OFF
VALUE_TEXT_ANTIALIAS_DEFAULT
VALUE_TEXT_ANTIALIAS_GASP
VALUE_TEXT_ANTIALIAS_LCD_HRGB
VALUE_TEXT_ANTIALIAS_LCD_HBGR
VALUE_TEXT_ANTIALIAS_LCD_VRGB
VALUE_TEXT_ANTIALIAS_LCD_VBGR
public static final Object VALUE_TEXT_ANTIALIAS_ON
KEY_TEXT_ANTIALIASING
public static final Object VALUE_TEXT_ANTIALIAS_OFF
KEY_TEXT_ANTIALIASING
public static final Object VALUE_TEXT_ANTIALIAS_DEFAULT
KEY_ANTIALIASING
ヒントまたは実装で選択されたデフォルトに従って行われます。
KEY_TEXT_ANTIALIASING
public static final Object VALUE_TEXT_ANTIALIAS_GASP
VALUE_TEXT_ANTIALIAS_ON
と VALUE_TEXT_ANTIALIAS_OFF
のどちらを適用するかについて、ポイントサイズごとに指定するフォントリソース内の情報を使用することが要求されます。
TrueType フォントは、通常この情報を「gasp」テーブルで提供します。この情報がないと、特定のフォントおよびサイズの動作は、実装のデフォルトによって決まります。
注: 通常、フォントの設計時は、もっとも一般的なユーザーインタフェースのポイントサイズに合わせて、フォントのヒント値を慎重に設定します。その結果「gasp」テーブルは、そのサイズの場合にだけヒントを使用し、「平滑化」は使用しないことを指定する可能性があります。そのため多くの場合、結果として得られるテキスト表示は、VALUE_TEXT_ANTIALIAS_OFF
と同等です。これは予期していませんが適切な動作です。
一貫性を保つために複数の物理フォントで構成される論理フォントでは、構成するフォント全体でもっとも適切な設定が使用されます。
KEY_TEXT_ANTIALIASING
public static final Object VALUE_TEXT_ANTIALIAS_LCD_HRGB
注 -
いずれかの LCD テキストヒント値を適用するかどうかを選択するときに、実装では、次のようにさまざまな点が考慮されることがあります。転送先でピクセルあたり 15 ビット (つまり色成分あたり 5 ビット) 以上の色深度にする必要性、埋め込みビットマップのほうが良好な結果になる場合があるなどのフォントの特性、ローカルではないネットワーク化された表示デバイスへの表示時は適切なプロトコルが使用可能な場合にだけデバイスを有効にする、非常に高解像度な描画を実行する場合や転送先デバイスが適切でない (印刷時など) 場合はヒントを無視するなどです。
これらのヒントは、ソフトウェアイメージへの描画時に等しく適用できますが、テキストは特定のサブピクセル構成に合わせて描画されるため、そのようなイメージは一般的な書き出しに適していない可能性があります。また、損失のあるイメージや、GIF のように色数が限られているイメージ形式を選択することは、適切ではありません。そのため同じ設定を使用してイメージが単独で表示デバイスに描画されないかぎり、VALUE_TEXT_ANTIALIAS_ON
などのその他のテキストアンチエイリアスのヒントのほうが適している場合があります。
使用している LCD ディスプレイに一致しない値を選択すると、テキスト品質が低下する可能性があります。LCD ディスプレイと同じ特性を持たない表示デバイス (CRT など) の場合、全体的な効果は標準のテキストアンチエイリアスに似ている場合がありますが、色の変化によって品質が低下することがあります。アナログ接続された LCD ディスプレイでも、CRT と同様に、標準のテキストアンチエイリアスに比べて利点はほとんどない可能性があります。
つまり最適な結果を得るには、デジタルディスプレイコネクタで LCD ディスプレイを使用し、適切なサブピクセル設定を指定してください。
KEY_TEXT_ANTIALIASING
public static final Object VALUE_TEXT_ANTIALIAS_LCD_HBGR
VALUE_TEXT_ANTIALIAS_LCD_HRGB
を参照してください。
KEY_TEXT_ANTIALIASING
public static final Object VALUE_TEXT_ANTIALIAS_LCD_VRGB
VALUE_TEXT_ANTIALIAS_LCD_HRGB
を参照してください。
KEY_TEXT_ANTIALIASING
public static final Object VALUE_TEXT_ANTIALIAS_LCD_VBGR
VALUE_TEXT_ANTIALIAS_LCD_HRGB
を参照してください。
KEY_TEXT_ANTIALIASING
public static final RenderingHints.Key KEY_TEXT_LCD_CONTRAST
VALUE_TEXT_ANTIALIAS_LCD_HRGB
など) と組み合わせて使用するときにテキストのコントラスト調整として使用される Integer
オブジェクトです。
KEY_TEXT_ANTIALIASING
public static final RenderingHints.Key KEY_FRACTIONALMETRICS
FRACTIONALMETRICS
ヒントは、個別の文字グリフの配置で、フォントのスケーリングされた文字の有効幅のサブピクセル精度を考慮するかどうか、またはそのような有効幅ベクトルをデバイス全体のピクセル数である整数値に丸めるかを制御します。このヒントは、グリフを配置するために使用される精度の程度だけを推奨し、グリフの実際のラスター化やピクセル境界を一致するように修正するかどうかについては指定または推奨しません。
画面のような低解像度デバイスにテキストを描画する場合は、文字グリフの形状およびメトリックスの高品質で非常に正確な定義を個々のデバイスピクセルに一致させる必要があるため、いくつかの丸め演算を呼び出す必要があります。理論的には、テキストレイアウト時のグリフの配置は、ポイントサイズに応じてフォントの設計メトリックスをスケーリングすることで計算されます。ただし、スケーリングされた有効幅は、ピクセルの整数値であるとはかぎりません。スケーリングされたこれらの設計メトリックスに応じてグリフがサブピクセル精度で配置される場合、理論的にはサブピクセルの原点と考えられる位置ごとにラスター化を調整する必要があります。
ただし、テキストレイアウト時に正確なサブピクセル原点に対してカスタマイズされた各グリフをスケーリングすることは非常に負荷が高いため、テキストをレイアウトする場合は、通常は整数デバイス位置を基にした単純化された座標系が使用されます。グリフのラスター化とスケーリングされた有効幅の両方が調整されて、テキストが生成されます。このテキストは、デバイスの解像度で適切に表示され、グリフ間の距離は一貫した整数ピクセル距離になるので、グリフの間隔が均等でばらつきがなく読みやすくなります。
ラスター化されたグリフの有効幅を整数距離に丸める処理によって、各グリフの調整後の幅でのわずかな差が累積するために、文字の密度とテキスト文字列の全体の長さは理論上の設計寸法とは異なります。具体的な差はグリフごとに異なり、グリフによって理論上の設計寸法よりも広くなったり狭くなったりします。そのため、文字密度と長さの全体的な差は、フォント、対象とする具体的なデバイス解像度、描画される文字列を表現するために選択されたグリフなど、さまざまな要因によって変化します。結果として、同じ文字列を複数のデバイス解像度で描画すると、文字列全体について広範囲に変化するメトリックスが得られることがあります。
FRACTIONALMETRICS
を有効にすると、本来のフォント設計メトリックスがポイントサイズまでスケーリングされて、サブピクセル精度でレイアウトに使用されます。そのため、長い文字列ではグリフの平均密度と全体の長さは、フォントの理論上の設計に非常に近くなりますが、グリフ原点のサブピクセルの累積をデバイスピクセルグリッドに合わせる方法によっては、文字の各ペアの距離が常に均等になるとはかぎらないため、読みやすさに影響する可能性があります。幅広い出力解像度で均等であることが必要なテキストレイアウトが実行されているときは、このヒントを有効にすることが望ましい場合があります。特に、最終的には高解像度のプリンタや写植装置で描画する出力について、テキストのレイアウトを画面などの低解像度デバイスでプレビューしているような状況では、このヒントを使用するのが望ましい方法です。
無効にすると、スケーリングされた設計メトリックスはレイアウトで整数距離に丸め処理または調整されます。グリフの各ペア間の距離は、デバイス上でより均一になりますが、長い文字列の密度や合計の長さは、フォント設計者が理論的に意図したものとは一致しなくなる可能性があります。一般にこのヒントを無効にすると、コンピュータのモニタのような低解像度デバイスでは読みやすい結果が得られます。
このキーでは、次の値を使用できます。
public static final Object VALUE_FRACTIONALMETRICS_OFF
KEY_FRACTIONALMETRICS
public static final Object VALUE_FRACTIONALMETRICS_ON
KEY_FRACTIONALMETRICS
public static final Object VALUE_FRACTIONALMETRICS_DEFAULT
KEY_FRACTIONALMETRICS
public static final RenderingHints.Key KEY_INTERPOLATION
INTERPOLATION
ヒントは、イメージの描画演算中にイメージピクセルがフィルタ処理または再抽出される方法を制御します。
イメージは、整数座標位置でカラーサンプルを提供するように暗黙的に定義されます。イメージが描画先でスケーリングされずに垂直方向に描画される場合、どのイメージピクセルマップをどのデバイスピクセルに描画するかの選択は明確であり、イメージの整数座標位置のサンプルは、デバイスピクセルグリッドの対応する整数位置のピクセルに 1 対 1 で転送されます。イメージがスケーリング、回転、またはその他の変形が加えられた座標系で描画され、そのあとデバイスピクセル座標からイメージへの逆マッピングが行われると、指定されたイメージサンプルの整数位置の間に存在する連続した座標に対して、どのカラーサンプルを使用するかという問題が生じることがあります。補間アルゴリズムは、周囲の整数座標のカラーサンプルに基づいてイメージで連続した座標のカラーサンプルを提供する関数を定義します。
このヒントでは、次の値を使用できます。
public static final Object VALUE_INTERPOLATION_NEAREST_NEIGHBOR
イメージを拡大すると、それに応じてブロック状になります。イメージを縮小すると、ソースピクセルの色は変更されずに使用されるか、または出力表現では完全にスキップされます。
KEY_INTERPOLATION
public static final Object VALUE_INTERPOLATION_BILINEAR
イメージを拡大しても、NEAREST_NEIGHBOR
の場合に見られるようなブロック状の端はイメージ内の色の間にはありません。ただしブレンドすると、サンプルに沿って並んだ水平方向および垂直方向の端に沿ってわずかに不連続が見られることがあります。これはサンプルの一方の側から他方の側へ補間の傾きが突然変化するために生じます。イメージを縮小すると、各出力ピクセルは最高で 4 つのイメージピクセルから色情報を受け取るため、結果として得られる出力にカラーサンプルが表現されるイメージピクセルが多くなります。
KEY_INTERPOLATION
public static final Object VALUE_INTERPOLATION_BICUBIC
X
と Y
の両方で 3 次関数を使用して補間され、カラーサンプルが生成されます。概念上、イメージの表示は BILINEAR
アルゴリズムを使用した表示と非常に似ています。ただし、サンプル間を結び付ける色変化は、曲線になり、サンプル境界間を交差するために傾きの連続性が向上します。
イメージを拡大してもブロック状の端はなく、BILINEAR
を使用した場合よりも、補間はなめらかになり、元のイメージの端がより的確に描かれます。イメージを縮小しても、元のイメージの元のカラーサンプルの色情報が維持され表現される量が多くなります。
KEY_INTERPOLATION
public static final RenderingHints.Key KEY_ALPHA_INTERPOLATION
ALPHA_INTERPOLATION
ヒントは汎用ヒントであり、アルゴリズムの選択で速度と品質のどちらを重視するか、その兼ね合いを評価するときに、高いレベルの推奨内容を提供します。
このヒントでは、精度をいくらか犠牲にして高速なルックアップテーブルや低精度の SIMD 命令を使用するアルファブレンディング計算の選択を制御できます。また、ピクセル単位の計算がさらに発生するデメリットがありますが、線形な視覚効果を高めるために、計算中に色やアルファの値を線形カラースペースに変換するかどうかについても制御できます。
このヒントでは、次の値を使用できます。
public static final Object VALUE_ALPHA_INTERPOLATION_SPEED
KEY_ALPHA_INTERPOLATION
public static final Object VALUE_ALPHA_INTERPOLATION_QUALITY
KEY_ALPHA_INTERPOLATION
public static final Object VALUE_ALPHA_INTERPOLATION_DEFAULT
KEY_ALPHA_INTERPOLATION
public static final RenderingHints.Key KEY_COLOR_RENDERING
COLOR_RENDERING
ヒントは、描画先イメージまたは表面に色を格納するときの近似および変換の精度を制御します。
描画またはイメージ操作の演算によって、描画先に格納される必要のあるカラー値が生成されるときに、描画先イメージまたは表面への格納に適した形式にその色を変換する必要があります。色成分をビット表現に変換して適切な順序で並べるか、またはデータを描画先メモリーに格納する前に色のルックアップテーブルに対するインデックスを選択することが最低限必要です。このような最低限の変換を行わないと、描画先のデータが表現する値がランダムや不正確になったり、場合によってはサポートされない値になったりします。描画演算の結果をもっとも一般的な描画先の色形式にすばやく変換するアルゴリズムは、広く知られており、実行するのに最適です。
描画先に色を格納するためにもっとも基本的な色形式変換を実行するだけでは、描画元と描画先の ColorSpace
やその他の要因 (ガンマ補正の線形性など) の較正での差が無視される可能性があります。描画元と描画先の ColorSpace
が同一でないかぎり、表現されている色の精度を最大限考慮して描画演算を適切に実行するには、描画元の色がデバイス非依存の ColorSpace
に変換され、その結果が描画先の ColorSpace
に逆変換されなければいけません。さらに、複数のソースの色をブレンドするような計算が描画演算中に実行される場合、計算される値と、出力デバイスの応答曲線に対する目による認知との間に対応関係を設定するために中間のデバイス非依存の ColorSpace
が選択されると、視覚上のわかりやすさを向上させることができます。
このヒントでは、次の値を使用できます。
public static final Object VALUE_COLOR_RENDER_SPEED
KEY_COLOR_RENDERING
public static final Object VALUE_COLOR_RENDER_QUALITY
KEY_COLOR_RENDERING
public static final Object VALUE_COLOR_RENDER_DEFAULT
KEY_COLOR_RENDERING
public static final RenderingHints.Key KEY_STROKE_CONTROL
STROKE_CONTROL
ヒントは、各種の目的で描画される形状の幾何学的図形の変更を描画実装が変更しなければならないかどうか、または変更できるかどうかを制御します。
実装によっては、最適化されたプラットフォーム描画ライブラリを使用できることがあります。これは、そのプラットフォームでの従来のソフトウェア描画アルゴリズムよりも高速である可能性がありますが、浮動小数点座標をサポートしていない可能性もあります。また、幅の広い線の幅や間隔がより均等になるようにパスの座標に影響を及ぼす高度なアルゴリズムが実装されていることもあります。
どのような種類であってもパスの変更や「正規化」を実行する場合は、どの方向にも座標を半ピクセル以上移動しないでください。
このヒントでは、次の値を使用できます。
public static final Object VALUE_STROKE_DEFAULT
KEY_STROKE_CONTROL
public static final Object VALUE_STROKE_NORMALIZE
KEY_STROKE_CONTROL
public static final Object VALUE_STROKE_PURE
KEY_STROKE_CONTROL
コンストラクタの詳細 |
---|
public RenderingHints(Map<RenderingHints.Key,?> init)
init
- ヒントを初期化するキーと値のペアのマップ。オブジェクトを空にする場合は nullpublic RenderingHints(RenderingHints.Key key, Object value)
key
- 特定のヒントプロパティーのキーvalue
- key
で指定されたヒントプロパティーの値メソッドの詳細 |
---|
public int size()
RenderingHints
内のキーと値のマッピングの数を返します。
Map<Object,Object>
内の size
RenderingHints
内のキーと値のマッピングの数public boolean isEmpty()
RenderingHints
内にキーと値のマッピングがない場合に true
を返します。
Map<Object,Object>
内の isEmpty
RenderingHints
内にキーと値のマッピングがない場合は true
public boolean containsKey(Object key)
RenderingHints
内に、指定されたキーのマッピングが含まれている場合に true
を返します。
Map<Object,Object>
内の containsKey
key
- RenderingHints
にあるかどうかが判定されるキー
RenderingHints
内に、指定されたキーのマッピングが含まれている場合は true
ClassCastException
- キーを RenderingHints.Key
にキャストできない場合public boolean containsValue(Object value)
RenderingHints
に次のような値 v
へのマッピングが 1 つ以上ある場合に限り true
を返します。 (value==null ? v==null : value.equals(v))
Map<Object,Object>
内の containsValue
value
- RenderingHints
にあるかどうかが判定される値
RenderingHints
が 1 つまたは複数のキーと指定された値をマッピングしている場合は true
public Object get(Object key)
Map<Object,Object>
内の get
key
- 描画ヒントキー
null
ClassCastException
- キーを RenderingHints.Key
にキャストできない場合put(Object, Object)
public Object put(Object key, Object value)
RenderingHints
オブジェクトで、指定された key
を指定された value
にマッピングします。キーや値は null
にすることはできません。この値は、元のキーと等しいキーを指定して get
メソッドを呼び出すことによって取り出すことができます。
Map<Object,Object>
内の put
key
- 描画ヒントキーvalue
- 描画ヒント値
null
NullPointerException
- キーが null
の場合
ClassCastException
- キーを RenderingHints.Key
にキャストできない場合
IllegalArgumentException
- 指定されたキーの Key#isCompatibleValue(java.lang.Object)Key.isCompatibleValue()
メソッドが、指定された値に対して false を返す場合get(Object)
public void add(RenderingHints hints)
RenderingHints
オブジェクトからすべてのキーとその対応する値をこの RenderingHints
オブジェクトに追加します。この RenderingHints
オブジェクトに存在するが、指定された RenderingHints
オブジェクトにないキーは影響を受けません。
hints
- この RenderingHints
オブジェクトに追加されるキーと値のペアのセットpublic void clear()
RenderingHints
オブジェクトからすべてのキーと値のペアを削除します。
Map<Object,Object>
内の clear
public Object remove(Object key)
RenderingHints
オブジェクトから、指定されたキーとその対応する値を削除します。指定されたキーがこの RenderingHints
オブジェクトにない場合、このメソッドは何もしません。
Map<Object,Object>
内の remove
key
- 削除される描画ヒントキー
RenderingHints
オブジェクトでキーが以前にマッピングされていた値。キーがマッピングされていなかった場合は null
ClassCastException
- キーを RenderingHints.Key
にキャストできない場合public void putAll(Map<?,?> m)
Map
からすべてのマッピングをこの RenderingHints
にコピーします。それらのマッピングは、指定された Map
に現在あるキーに対応する、この RenderingHints
にあったマッピングを置換します。
Map<Object,Object>
内の putAll
m
- 指定された Map
ClassCastException
- 指定された Map
内のキーまたは値のクラスが原因で、キーまたは値がこの RenderingHints
内に格納されない場合
IllegalArgumentException
- 指定された Map
のキーまたは値の特性が原因で、この RenderingHints
に格納されない場合public Set<Object> keySet()
RenderingHints
に格納されている Key の Set
ビューを返します。Set は RenderingHints
に連動しており、RenderingHints
への変更は Set
で反映され、その逆方向でも反映されます。Set
の繰り返し処理の進行中に RenderingHints
が変更される場合、繰り返し処理の結果は保証されません。Set
は、Iterator.remove
、Set.remove
、removeAll
、retainAll
、および clear
の各オペレーションを介して RenderingHints
から対応するマッピングを削除する要素削除処理をサポートします。Set は、add
オペレーションや addAll
オペレーションはサポートしていません。
Map<Object,Object>
内の keySet
RenderingHints
に格納されているキーの Set
ビューpublic Collection<Object> values()
RenderingHints
に格納されている値の Collection
ビューを返します。Collection
は RenderingHints
に連動しており、RenderingHints
への変更は Collection
で反映され、その逆方向でも反映されます。Collection
の繰り返し処理の進行中に RenderingHints
が変更される場合、繰り返し処理の結果は保証されません。Collection
は、Iterator.remove
、Collection.remove
、removeAll
、retainAll
、および clear
の各オペレーションを介して RenderingHints
から対応するマッピングを削除する要素削除処理をサポートします。Set は、add
オペレーションや addAll
オペレーションはサポートしていません。
Map<Object,Object>
内の values
RenderingHints
に格納されている値の Collection
ビューpublic Set<Map.Entry<Object,Object>> entrySet()
RenderingHints
に格納されているマッピングの Set
ビューを返します。返される Set
の各要素は Map.Entry
です。Set
は RenderingHints
に連動しており、RenderingHints
への変更は Set
で反映され、その逆方向でも反映されます。Set
の繰り返し処理の進行中に RenderingHints
が変更される場合、繰り返し処理の結果は保証されません。
RenderingHints
オブジェクトから返される entrySet は変更できません。
Map<Object,Object>
内の entrySet
RenderingHints
に格納されているマッピングの Set
ビューpublic boolean equals(Object o)
Object
とこの RenderingHints
が等しいかどうかを比較します。指定されたオブジェクトも Map
であり、2 つの Map
オブジェクトが同じマッピングを表す場合に true
を返します。つまり、t1.keySet().equals(t2.keySet())
であり、t1.keySet()
内のすべてのキー k
で次のような場合に、2 つの Map
オブジェクト t1
と t2
は同じマッピングを表します。 (t1.get(k)==null ? t2.get(k)==null : t1.get(k).equals(t2.get(k)))
Map<Object,Object>
内の equals
Object
内の equals
o
- この RenderingHints
と等しいかどうかが比較される Object
Object
がこの RenderingHints
と等しい場合は true
Object.hashCode()
,
Hashtable
public int hashCode()
RenderingHints
のハッシュコード値を返します。RenderingHints
のハッシュコードは、RenderingHints
オブジェクトの entrySet ビュー内の各 Entry
の hashCode の合計になるように定義されます。これにより、Object.hashCode
の汎用規約によって要求されるように、任意の 2 つの Map
オブジェクト t1
と t2
について、t1.equals(t2)
ならば t1.hashCode()==t2.hashCode()
となることが保証されます。
Map<Object,Object>
内の hashCode
Object
内の hashCode
RenderingHints
のハッシュコード値Map.Entry.hashCode()
,
Object.hashCode()
,
Object.equals(Object)
,
equals(Object)
public Object clone()
RenderingHints
オブジェクトと同一の内容を持つ、この RenderingHints
のクローン (複製) を作成します。
Object
内の clone
Cloneable
public String toString()
RenderingHints
オブジェクトのキーと値のマッピングを格納するハッシュマップの比較的長い文字列表現を返します。
Object
内の toString
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。