GD::Text::Alignモジュール(日本語チョウ訳) Ver.1

by Hippo2000(2001/2/10)

GD::Textモジュールなのです。

原本の著作権はMartien Verbruggen 氏がお持ちです(詳しくは著作権情報を見てください)。Martien Verbruggen 氏からは、メールで了解をいただきました。Thank you, Mr Verbruggen!

内容等が間違っていたら修正します。ご連絡ください。



名前

GD::Text::Align - 位置づけられた文字列の描画


概要

  use GD;
  use GD::Text::Align;
  my $gd = GD::Image->new(800,600);
  # 他のことをするために色を占有
  my $align = GD::Text::Align->new($gd
    valign => 'top',
    halign => 'right',
  );
  $align->set_font('cetus.ttf', 12);
  $align->set_text('some string');
  @bb = $align->bounding_box(200, 400, PI/3);
  # ここでbounding boxをベースにしたことをでできます。
  $align->draw(200, 400, PI/3);

説明

GD::Text::Alignはある角度に調整された線に並べられた文字列を描画するオブジェクトを提供します。

組込フォントでは2つの角度:0とPI/2だけが適切です。他の角度は2つのうちのどちらかに変換されます。


メソッド

このクラスはGD::Textからすべてのものを継承しています。ここでは、そちらで説明されなかったメソッドと属性もしくは異なるインターフェースや動きを持つものだけを説明します。直接継承されたメソッドはset_textとset_fontを含みます。


GD::Text::Align->new($gd_object, attrib => value, ...)

新しいオブジェクトを生成します。newへの最初の引数は適切なGD::Imageオブジェクトでなければなりません。残りの引数はsetメソッドに送られます。


$align->set(attrib => value, ...)

属性を設定します。適切な属性はGD::Text で説明されたものに加えて以下のものがあります:

valign, halign
文字列を垂直(vertical)そして水平(horizontal)に並べます。set_valignとset_halignもご覧ください。
colour, color
同じもの。文字列を描画するための色。これはGD::Imageオブジェクトのパレットでの色のインデックスでなければなりません。デフォルトの値は$alignを生成した時点でのGDオブジェクトのパレットでの最後の色です。

$align->get(attribute)

属性の値を取得します。適切な属性はGD::Textで記述された属性のすべて、setメソッドで記述された属性、さらに以下のものがあります:

x, y そして angle
使われる座標での x と y 、そして角度。drawまたはbounding_box メソッドを呼び出した後にだけこれをすることができます。これらの座標は前に渡したものと必ずしも一致しないことに注意してください。その代わりにGDメソッドが描画を始める場所の座標です。これが本当にだれにも有効であるか疑問に思っています。

色を'color'と'colour'の両方で設定することができますが、'colour'でしか取得できないことに注意してください。すみませんがオーストラリアではそんなもんなんです。


$align->set_valign(value)

文字列の位置付けを'top'、'center'、'base'または'bottom'のどれかに設定します。組込フォントでは最後の2つは同じです。'base'という値はTrueTypeフォントの基本線を表します。成功するとtrue、失敗するとfalseを返します。


$align->set_halign(value)

水平の位置付けを'left'、'center'、'right'のいずれかに設定します。成功するとtrue、失敗するとfalseを返します。


$align->set_align(valign, halign)

垂直と水平方向の位置付けを設定します。これは便宜上だけ存在します。set_valignとset_halignをご覧下さい。成功するとtrue、失敗するとfalseを返します。


$align->draw(x, y, angle)

座標x,yに角度はラジアンangleで描画します。xとyの座標は文字列が回転するための中心点となります。

GD組込フォントには適切な角度は0またはPI/2の2つしかないことに注意。

描画した文字列の領域を返します(bounding_box()をご覧ください)


$align->bounding_box(x, y, angle)

描画する文字列の領域を返します。これは8つの要素を持つリストを返します(GD::Image->stringTTFメソッドとまったく同じです):

  (x1,y1) 左下の角
  (x2,y2) 右下の角
  (x3,y3) 右上の角
  (x4,y4) 左上の角

上、下、左、右は文字列に対するものでキャンバスに対するものではないことに注意してください。

bounding_boxは実際に文字列を描画する前に文字列を動かすか、フォントの大きさを変えるかを判断するために使うことができます。


注意

すべてのPerlためのモジュールに:インタフェースを守って使うようにしてください。このモジュールの内部の知識を使ってもて遊びすぎると痛い目にあうでしょう。いつかはこれを変更するかもしれません。

TrueTypeフォントはGDのバージョン>1.20で、これをサポートするようにコンパイルしたときにのみ利用できます。それでもやろうとすると、エラーになります。

以下の用語、'top', 'upper', 'left'そしてそれらに類するものは、キャンバスではなく、描画される文字列に関連します。


バグ

GD::Textからすべてのバグを継承しています。


著作権(COPYRIGHT)

copyright 1999 Martien Verbruggen (mgjv@comdyn.com.au)


参考資料

GD, GD::Text, GD::Text::Wrap

 


ホーム Perlの小技

ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。