public final class GlyphMetrics extends Object
GlyphMetrics
クラスは、単一のグリフの情報を表します。グリフとは、1 つまたは複数の文字の視覚的な表現です。単一文字または複数の文字の組み合わせを表現するために、さまざまな多くのグリフを使うことができます。GlyphMetrics
のインスタンスは Font
によって生成され、特定の Font
の特定のグリフに適用されます。
グリフには、STANDARD、LIGATURE、COMBINING、および COMPONENT があります。
GlyphVector
にあり、このグリフは、テキストモデルの特定の文字とは対応しない。代わりに COMPONENT グリフは、たとえばアラビア語の位置揃えといった、印刷上の理由で追加される。
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();
Font
, GlyphVector
修飾子と型 | フィールドと説明 |
---|---|
static byte |
COMBINING
ウムラウトのような結合文字のグリフを示します。
|
static byte |
COMPONENT
対応する文字がバッキングストアにないグリフを示します。
|
static byte |
LIGATURE
複数の文字を合字として表すグリフを示します。合字は、「fi」や「ffi」などです。
|
static byte |
STANDARD
単一の標準文字を表すグリフを示します。
|
static byte |
WHITESPACE
視覚表現のないグリフを示します。
|
コンストラクタと説明 |
---|
GlyphMetrics(boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType)
GlyphMetrics オブジェクトを構築します。 |
GlyphMetrics(float advance, Rectangle2D bounds, byte glyphType)
GlyphMetrics オブジェクトを構築します。 |
修飾子と型 | メソッドと説明 |
---|---|
float |
getAdvance()
水平または垂直のベースラインに沿った、グリフの有効幅を返します。
|
float |
getAdvanceX()
グリフの有効幅の X コンポーネントを返します。
|
float |
getAdvanceY()
グリフの有効幅の Y コンポーネントを返します。
|
Rectangle2D |
getBounds2D()
グリフの境界を返します。
|
float |
getLSB()
グリフの左側 (上端) 相対位置を返します。
|
float |
getRSB()
グリフの右側 (下端) 相対位置を返します。
|
int |
getType()
グリフタイプコードそのものを返します。
|
boolean |
isCombining()
結合グリフの場合に、
true を返します。 |
boolean |
isComponent()
コンポーネントグリフの場合に、
true を返します。 |
boolean |
isLigature()
合字グリフの場合に、
true を返します。 |
boolean |
isStandard()
標準グリフの場合に、
true を返します。 |
boolean |
isWhitespace()
空白文字グリフの場合に、
true を返します。 |
public static final byte STANDARD
public static final byte LIGATURE
public static final byte COMBINING
public static final byte COMPONENT
public static final byte WHITESPACE
public GlyphMetrics(float advance, Rectangle2D bounds, byte glyphType)
GlyphMetrics
オブジェクトを構築します。advance
- グリフの有効幅bounds
- グリフのブラックボックス境界glyphType
- グリフのタイプpublic GlyphMetrics(boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType)
GlyphMetrics
オブジェクトを構築します。horizontal
- true の場合、メトリックスは水平のベースライン用で、そうでない場合は垂直のベースライン用であるadvanceX
- グリフの有効幅の X 成分advanceY
- グリフの有効幅の Y 成分bounds
- グリフの視覚境界glyphType
- グリフのタイプpublic float getAdvance()
public float getAdvanceX()
public float getAdvanceY()
public Rectangle2D getBounds2D()
Rectangle2D
。public float getLSB()
これは、(0, 0) の位置から、グリフの境界の左 (上端) までの距離です。グリフの境界が原点の左 (上) にある場合、結果は負の数になります。
public float getRSB()
RSB は、グリフの境界の右 (下端) から有効幅までの距離です。グリフの境界が有効幅の右 (下) にある場合、結果は負の数になります。
public int getType()
public boolean isStandard()
true
を返します。true
、そうでない場合は false
。public boolean isLigature()
true
を返します。true
、そうでない場合は false
。public boolean isCombining()
true
を返します。true
、そうでない場合は false
。public boolean isComponent()
true
を返します。true
、そうでない場合は false
。public boolean isWhitespace()
true
を返します。true
、そうでない場合は false
。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.