PerlMagick(Image::Magick)を使用して入力された文字を画像化したいのですが
以下の2点で行き詰まっています。
1)決めた出力画像の幅いっぱいで、入力された文字を画像化することはできますか?
例えば、幅300pxいっぱいになるように画像を出力、
文字数によってフォントサイズが可変し幅300pxの画像が出力されるといった感じです。
2)もしその方法が出来ない場合以下の方法を考えています。
大きめのフォントで画像を出力しあとから幅をリサイズする方法。
この方法を実現するためには、あらかじめ出力画像のサイズを決めず、
文字数によって出力画像の幅が決まるようにする必要があります。
以上のことはPerlMagickで実現可能ですか?
もし可能な場合、簡単なサンプル等書いて頂ければ助かります。
幅やフォントサイズを決めてからの文字の画像化には成功しています。
他にアイデア等がありましたら別の方法でも構いません。
ご教授よろしくお願い致します。
自分では未だ試していませんので、頼りない回答で申し訳ありませんが、
恐らくはQueryFontMetrics()/QueryMultilineFontMetrics()で解決できると思います。
http://www.imagemagick.org/script/perl-magick.php#miscellaneous
上記のページで、"font metric information"というフレーズでページ内検索を
かければ、当該のメソッドに関する記述が見付かります。
要はAnnotateメソッドを実行しなくても、実行結果として出力される画像の
大きさ等の情報を得ることができるメソッドです。
A.
フォントとサイズと文字を指定すれば、横幅、縦幅を取得メソッドがあります。
これを利用します。
固定幅ビッチにすれば簡単ですがそうじゃない場合は
固定幅ビッチでフォントサイズを計算して、
その前後をしらべてなるべく文字がおさまる大きいフォントサイズ見つけ出してプログラムで見つけ出して
それで描画します
B.
固定ピッチフォントで計算して、これよりもすこし大き目のフォントで出力
出力された画像を幅300pxになるように縮小処理を行う。
コメント(0件)