モジュール java.desktop
パッケージ java.awt.font

クラスGlyphMetrics


  • public final class GlyphMetrics
    extends Object
    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();
     

    関連項目:
    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を返します。
    • フィールドの詳細

      • 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