GlyphMetrics
クラスは、単一のグリフの情報を表します。 グリフとは、1つまたは複数の文字の視覚的な表現です。 単一文字または複数の文字の組み合わせを表現するために、さまざまな多くのグリフを使うことができます。 GlyphMetrics
のインスタンスはFont
によって生成され、特定のFont
の特定のグリフに適用されます。
グリフには、STANDARD、LIGATURE、COMBINING、およびCOMPONENTがあります。
- STANDARD (標準)は、1文字を表すのに一般に使われるグリフ。
- LIGATURE (合字)は、文字列を表すのに使われるグリフ。
- COMPONENT (コンポーネント)グリフは
GlyphVector
にあり、このグリフは、テキスト・モデルの特定の文字とは対応しない。 代わりにCOMPONENTグリフは、たとえばアラビア語の位置揃えといった、印刷上の理由で追加される。 - COMBINING (結合)グリフは、STANDARDまたはLIGATUREのグリフを装飾する、たとえばアクセント記号などのグリフ。 COMBININGグリフの前には、キャレットは表示されない。
GlyphMetrics
で利用可能なほかのメトリックスには、有効幅の成分、視覚境界、および左側相対位置と右側相対位置があります。
回転されたフォントのグリフ、またはグリフに回転を適用したGlyphVector
から取得されたグリフの有効幅には、X成分とY成分の両方がある場合があります。 通常、有効幅のコンポーネントは1つだけです。
グリフの有効幅は、グリフの原点から次のグリフの原点までの、垂直または水平のベースラインに沿った距離です。 GlyphVector
では、カーニングやその他の位置調整のため、グリフからその次のグリフまでの距離はグリフの有効幅でない場合があります。
境界は、グリフのアウトラインを完全に囲む最小の矩形です。 境界の矩形は、グリフの原点を基準に示されます。 左側相対位置は、グリフの原点から、その境界の矩形の左側までの距離です。 左側相対位置が負の値である場合、グリフの一部は、グリフの原点の左側に描かれます。 右側相対位置は、境界の矩形の右側から、次のグリフの原点までの距離です。つまり、原点に有効幅を足した値になります。 この値が負の数である場合は、グリフの一部が次のグリフの原点の右側まで描かれています。 ラスター化やピクセル調整があるため、グリフを描画するときに影響を受けるピクセルがすべて境界内に収まるわけではありません。
GlyphMetrics
のインスタンスは直接に生成できますが、通常はGlyphVector
から取得します。 いったん生成したGlyphMetrics
オブジェクトは不変です。
例:
Font
に、グリフ情報を照会します。
Font font = ...; int glyphIndex = ...; GlyphMetrics metrics = GlyphVector.getGlyphMetrics(glyphIndex); int isStandard = metrics.isStandard(); float glyphAdvance = metrics.getAdvance();
- 関連項目:
-
フィールドのサマリー
修飾子と型フィールド説明static final byte
ウムラウトのような結合文字のグリフを示します。static final byte
対応する文字がバッキング・ストアにないグリフを示します。static final byte
複数の文字を合字として表すグリフを示します。合字は、「fi」や「ffi」などです。static final byte
単一の標準文字を表すグリフを示します。static final byte
視覚表現のないグリフを示します。 -
コンストラクタのサマリー
コンストラクタ説明GlyphMetrics
(boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType) GlyphMetrics
オブジェクトを構築します。GlyphMetrics
(float advance, Rectangle2D bounds, byte glyphType) GlyphMetrics
オブジェクトを構築します。 -
メソッドのサマリー
修飾子と型メソッド説明float
水平または垂直のベースラインに沿った、グリフの有効幅を返します。float
グリフの有効幅のXコンポーネントを返します。float
グリフの有効幅のYコンポーネントを返します。グリフの境界を返します。float
getLSB()
グリフの左側(上端)相対位置を返します。float
getRSB()
グリフの右側(下端)相対位置を返します。int
getType()
グリフ・タイプ・コードそのものを返します。boolean
結合グリフの場合に、true
を返します。boolean
コンポーネント・グリフの場合に、true
を返します。boolean
合字グリフの場合に、true
を返します。boolean
標準グリフの場合に、true
を返します。boolean
空白文字グリフの場合に、true
を返します。
-
フィールド詳細
-
STANDARD
public static final byte STANDARD単一の標準文字を表すグリフを示します。- 関連項目:
-
LIGATURE
public static final byte LIGATURE複数の文字を合字として表すグリフを示します。合字は、「fi」や「ffi」などです。 この次には、残りの文字を埋めるフィラー・グリフが続きます。 フィラー・グリフと結合グリフを混用して、論理的に前にある合字の上に付くアクセント記号の位置を制御することもできます。- 関連項目:
-
COMBINING
public static final byte COMBININGウムラウトのような結合文字のグリフを示します。 このグリフとその前のグリフの間には、キャレット位置はありません。- 関連項目:
-
COMPONENT
public static final byte COMPONENT対応する文字がバッキング・ストアにないグリフを示します。 このグリフは、論理的に前にある、文字コンポーネントでないグリフによって示される文字と関連付けられます。 こうしたグリフは、kashidaの位置揃えや、既存のグリフの視覚的な変更に使われます。 このグリフとその前のグリフの間には、キャレット位置はありません。- 関連項目:
-
WHITESPACE
public static final byte WHITESPACE視覚表現のないグリフを示します。 これは、不可視のグリフを示すほかのコード値に追加できます。- 関連項目:
-
-
コンストラクタの詳細
-
GlyphMetrics
public GlyphMetrics(float advance, Rectangle2D bounds, byte glyphType) GlyphMetrics
オブジェクトを構築します。- パラメータ:
advance
- グリフの有効幅bounds
- グリフのブラック・ボックス境界glyphType
- グリフのタイプ
-
GlyphMetrics
public GlyphMetrics(boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType) GlyphMetrics
オブジェクトを構築します。- パラメータ:
horizontal
- trueの場合、メトリックスは水平のベースライン用で、そうでない場合は垂直のベースライン用であるadvanceX
- グリフの有効幅のX成分advanceY
- グリフの有効幅のY成分bounds
- グリフの視覚境界glyphType
- グリフのタイプ- 導入されたバージョン:
- 1.4
-
-
メソッドの詳細
-
getAdvance
public float getAdvance()水平または垂直のベースラインに沿った、グリフの有効幅を返します。- 戻り値:
- グリフの有効幅
-
getAdvanceX
public float getAdvanceX()グリフの有効幅のXコンポーネントを返します。- 戻り値:
- グリフの有効幅のXコンポーネント
- 導入されたバージョン:
- 1.4
-
getAdvanceY
public float getAdvanceY()グリフの有効幅のYコンポーネントを返します。- 戻り値:
- グリフの有効幅のYコンポーネント
- 導入されたバージョン:
- 1.4
-
getBounds2D
public Rectangle2D getBounds2D()グリフの境界を返します。 これは、グリフのアウトラインのバウンディング・ボックスです。 ラスター化やピクセル調整があるため、グリフを描画するときに影響を受けるピクセルがすべて境界内に納まるわけではありません。- 戻り値:
- グリフの境界である
Rectangle2D
。
-
getLSB
public float getLSB()グリフの左側(上端)相対位置を返します。これは、(0, 0)の位置から、グリフの境界の左(上端)までの距離です。 グリフの境界が原点の左(上)にある場合、結果は負の数になります。
- 戻り値:
- グリフの左側相対位置。
-
getRSB
public float getRSB()グリフの右側(下端)相対位置を返します。これは、グリフの境界の右(下端)から有効幅までの距離です。 グリフの境界が有効幅の右(下)にある場合、結果は負の数になります。
- 戻り値:
- グリフの右側相対位置。
-
getType
public int getType()グリフ・タイプ・コードそのものを返します。- 戻り値:
- グリフ・タイプ・コードそのもの。
-
isStandard
public boolean isStandard()標準グリフの場合に、true
を返します。- 戻り値:
- 標準グリフの場合は
true
、そうでない場合はfalse
。
-
isLigature
public boolean isLigature()合字グリフの場合に、true
を返します。- 戻り値:
- 合字グリフの場合は
true
、そうでない場合はfalse
。
-
isCombining
public boolean isCombining()結合グリフの場合に、true
を返します。- 戻り値:
- 結合グリフの場合は
true
、そうでない場合はfalse
。
-
isComponent
public boolean isComponent()コンポーネント・グリフの場合に、true
を返します。- 戻り値:
- コンポーネント・グリフの場合は
true
、そうでない場合はfalse
。
-
isWhitespace
public boolean isWhitespace()空白文字グリフの場合に、true
を返します。- 戻り値:
- 空白文字グリフの場合は
true
、そうでない場合はfalse
。
-