JavaTM Platform
Standard Ed. 6

java.awt.font
クラス GlyphMetrics

java.lang.Object
  上位を拡張 java.awt.font.GlyphMetrics

public final class GlyphMetrics
extends Object

GlyphMetrics クラスは、単一のグリフの情報を表します。グリフとは、1 つまたは複数の文字の視覚的な表現です。単一文字または複数の文字の組み合わせを表現するために、さまざまな多くのグリフを使うことができます。GlyphMetrics のインスタンスは Font によって生成され、特定の Font の特定のグリフに適用できます。  

グリフには、STANDARD、LIGATURE、COMBINING、および 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
          複数の文字を合字として表すグリフを示します。
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 を返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

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()
グリフの左側 (上端) 相対位置を返します。  

LSB は、(0, 0) の位置から、グリフの境界の左 (上端) までの距離です。グリフの境界が原点の左 (上) にある場合、結果は負の数になります。

戻り値:
グリフの左側相対位置

getRSB

public float getRSB()
グリフの右側 (下端) 相対位置を返します。  

RSB は、グリフの境界の右 (下端) から有効幅までの距離です。グリフの境界が有効幅の右 (下) にある場合、結果は負の数になります。

戻り値:
グリフの右側相対位置

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

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。