写真登録枚数

3518

新着情報

ImageMagick でテキスト文字を画像に反映させる方法とバグ

home »サーバー管理・構築 »CentOS » ImageMagick でテキスト文字を画像に反映させる方法とバグ

サーバー上で、テキスト文字を含んだ画像を生成したいことがありました。
ImageMagickのテキスト文字を画像として出力するときは、convertコマンドを使って実行しますが実はこれがうまく動作しない現象が発生していました。

> convert -font "msmincho.ttc" -pointsize 30 -size 240x320 label:@message.txt sample.jpg

で実行します。
詳細のオプションの内容などはもっと詳しいサイトがあるのでそちらに譲りますが、簡単にご説明。
pointsize : 文字サイズ
size : 精製される画像の縦横のサイズ
label : 書き出したいテキストの内容
そして、最後に出力画像ファイル名

おそらくこれで問題無く出来るだろうと実行したものの、まず pointsize が無視されます。
どんなサイズにしても文字サイズは変わりません
そして、message.txtには、複数行の文字データが書かれているのですが1行しか表示されません

作成対象となるサーバーで使用しているImageMagickのバージョンは、6.0.7 でした。
これが問題でした。
ImageMagick は、6.2.7移行でないと、pointsize命令にバグがあるらしく正しく動作しない様子。

仕方がないので、現在の最新版である 6.7.3 をダウンロードしてインストールをします。

■Image Magick
https://www.imagemagick.org/

しかし、サーバーの環境上ImageMagickが既に多用している為上書きしてしまうのは安直すぎます。
そのとめ、上書きをせずに別の位置にインストールさせることで対応をしてみることにします。
そのためソースコードからコンパイルをします。

上記から取得してきたソースコードを作業用ディレクトリに取得して、展開します。

> wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.7.3-4.tar.gz 
> tar zxvf ImageMagick-6.7.3-4.tar.gz 
> cd ImageMagick-6.7.3-4

展開したディレクトリに入って、ソースコードのコンパイルをします。
ここでは、configureを使ってソースコードのMakefileを作ります。
そこで明示的に現在のImageMagickては別の位置にインストールされるように prefix オプションを使いって指定しました。
その他のオプションは基本的にデフォルトで問題なさそうなので、他の設定はデフォルトで問題無いと思います。

> configure –prefix=/usr/local/im
> make
> make install

これで、/usr/local/im の位置に 6.7.3-4 の新しいImageMagick がインストールされました。

最初のコマンド

> convert -font "msmincho.ttc" -pointsize 30 -size 240x320 label:@message.txt sample.jpg

上記を下記

> /usr/local/im/bin/convert -font "msmincho.ttc" -pointsize 30 -size 240x320 label:@message.txt sample.jpg

とすることで無事、複数行も文字サイズの変更も出来るようになりました。

関連のありそうなエントリ

この記事に対するコメントはまだ登録されていません。

*


トラックバックURL


※ 管理者の承認後に表示します。無関係な内容や、リンクだけで意見や感想のないものは承認しません。


ブログランキング・にほんブログ村へ