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 ビューを返します。 |
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
ヒントキーの値に従います。
このヒントでは、次の値を使用できます。
public static final Object VALUE_TEXT_ANTIALIAS_ON
public static final Object VALUE_TEXT_ANTIALIAS_OFF
public static final Object VALUE_TEXT_ANTIALIAS_DEFAULT
KEY_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
public static final Object VALUE_FRACTIONALMETRICS_ON
public static final Object VALUE_FRACTIONALMETRICS_DEFAULT
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
public static final Object VALUE_ALPHA_INTERPOLATION_QUALITY
public static final Object VALUE_ALPHA_INTERPOLATION_DEFAULT
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
内のキーと値のマッピングの数を返します。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
オブジェクトにない場合、このメソッドは何もしません。public void putAll(Map<?,?> m)
Map
のすべてのマッピングをこの RenderingHints
にコピーします。これらのマッピングは、指定された 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
、クラス: Object
RenderingHints
のハッシュコード値。Map.Entry.hashCode()
, Object.hashCode()
, Object.equals(Object)
, equals(Object)
public Object clone()
RenderingHints
オブジェクトと同じ内容を持つ、この RenderingHints
オブジェクトの複製を作成します。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.