PHP拡張モジュールであるImagickを使い、文字を画像として出力させる処理については以前おこいました。
今回、テキストをannotateまたはannotateImageする際に、テキストに改行が含まれているケースを扱ったのですが、画像として出力されたときの行間の設定についてあまり情報を見かけなかったので記録しておきます。
ImagickDraw::setTextInterlineSpacing
PHP: ImagickDraw::setTextInterlineSpacing - Manual
PHP is a popular general-purpose scripting language that pow...
こちらにPHPの関数情報だけが載っていました。
$draw->setTextInterlineSpacing(10);
テキストをannotateまたはannotateImageする直前に、このように行間(spacing)の値を設定してみたところ、問題なく動作しました。
単位はピクセルのようです。
動作サンプル
$text = ‘あいうえお
かきくけこ
さしすせそ
たちつてと
なにぬねの’;
改行を含んだ文字列を画像にするスクリプトをあらかじめ作っておき、setTextInterlineSpacingの値をいくつか試してみました。
初期値(未設定)は0
setTextInterlineSpacing(5)
setTextInterlineSpacing(10)
setTextInterlineSpacing(20)
このように、行と行の高さが変更することができました。
今回のサンプルでは、フロップデザインフォントを「setFontSize(26)」の文字サイズにて試しました。
コメント