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