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