ぼんやりDTP

DTPに関係したりしなかったりするぼんやりとした話をなんとなく。

テキストファイルをざっくりと画像ファイルにしたい

テキストファイルをざっくりと画像ファイルにしたい

1ページ分くらいのテキストファイルをざっくりと1枚ものの画像ファイルにしたい、Macで、コマンドラインで。

日本語テキストが前提。

使用するもの

  1. fold コマンドで任意の文字数でテキストを改行
  2. ImageMagickconvert コマンドで画像にテキスト描画

ImageMagickのインストール

brew install imagemagick

具体的な手順

  1. convert コマンドで使えるフォントを確認
$ convert -list font

#テキストファイルに書き出すなら下記のようなコマンド

$ convert -list font > font_list.txt
  1. 表示されたフォント名のリストから使用したいフォント名をコピーして下記コマンドの<フォント名>部分を差し替えて実行
$ fold -80 < sample.txt | convert -size 1000x2000 -density 72 xc:white \
-font "<フォント名>" -pointsize 24 -interline-spacing 6 \
-fill black -annotate +15+30 "@-" -trim -bordercolor "#FFF" \
-border 10 +repage image.png
# sample.txt を半角80文字(全角40文字)で改行して image.png に書き出し
# 24 pt のテキストサイズ、行間 6 pt で 72 dpi で画像ファイルにする
# 1000x2000部分は文字数、行数に応じて適宜調整

上記コマンド convert -list font でフォントの一覧が出てこない場合、また、使いたいフォントが出てこない場合

以下「<ユーザー名>」はログインしているユーザー名

  1. 下記コマンドでフォントの設定ファイルの場所を確認
$ convert -debug configure -list font 2>&1 | grep -E "Searching|Loading"
#以下出力例
  Searching for configure file: "/usr/local/Cellar/imagemagick@6/6.9.10-2/share/ImageMagick-6/type.xml"
  Searching for configure file: "/usr/local/Cellar/imagemagick@6/6.9.10-2/lib/ImageMagick//config-Q16/type.xml"
  Searching for configure file: "/usr/local/Cellar/imagemagick@6/6.9.10-2/etc/ImageMagick-6/type.xml"
  Searching for configure file: "/usr/local/Cellar/imagemagick@6/6.9.10-2/share/doc/ImageMagick-6/type.xml"
  Searching for configure file: "/Users/<ユーザー名>/.config/ImageMagick/type.xml"
  Searching for configure file: "/Users/<ユーザー名>/.magick/type.xml"
  Loading type configure file "/usr/local/Cellar/imagemagick@6/6.9.10-2/etc/ImageMagick-6/type.xml" ...
  Loading type configure file "/usr/local/Cellar/imagemagick@6/6.9.10-2/etc/ImageMagick-6/type-apple.xml" ...
  Loading type configure file "/usr/local/Cellar/imagemagick@6/6.9.10-2/etc/ImageMagick-6/type-ghostscript.xml" ...
  Loading type configure file "/Users/<ユーザー名>/.config/ImageMagick/type.xml" ...
  1. フォントの場所を設定ファイルに書き出すスクリプトをダウンロード
$ curl http://www.imagemagick.org/Usage/scripts/imagick_type_gen > type_gen

↓(移動した模様(2021-03-11追記))

$ curl https://legacy.imagemagick.org/Usage/scripts/imagick_type_gen > type_gen
  1. フォントリストの設定ファイルを生成
$ find /System/Library/Fonts /Library/Fonts ~/Library/Fonts -name "*.[to]tf" | perl type_gen -f - > type.xml
# find で探索するディレクトリは登録したいディレクトリだけでも可

↓(Catalina 以降?のOSで追加ダウンロードしたフォントも含む場合(2021-03-11追記))

$ find /System/Library/Fonts /System/Library/AssetsV2/com_apple_MobileAsset_Font6 /Library/Fonts ~/Library/Fonts -name "*.[to]tf" | perl type_gen -f - > type.xml
  1. 生成されたフォントリストの設定ファイル「type.xml」を「/Users/<ユーザー名>/.config/ImageMagick/type.xml」に配置
$ mkdir -p "/Users/<ユーザー名>/.config/ImageMagick/"
$ cp type.xml "/Users/<ユーザー名>/.config/ImageMagick/type.xml"
  1. または、配置する場所は "/Users/<ユーザー名>/.magick/type.xml" にして <include file="~/.magick/type.xml" />/usr/local/Cellar/imagemagick@X/X.X.X-X/etc/ImageMagick-X/type.xml の中の <typemap> ... </typemap> タグの中に追記しても可
$ mkdir -p "/Users/<ユーザー名>/.magick/"
$ cp type.xml "/Users/<ユーザー名>/.magick/type.xml"
$ vi /usr/local/Cellar/imagemagick@X/X.X.X-X/etc/ImageMagick-X/type.xml
<typemap>
  <include file="type-ghostscript.xml" />
  <include file="~/.magick/type.xml" />    ### この行を追加 ###
</typemap>

参考ページ

  1. command line - How to transform a text file into a picture - Unix & Linux Stack Exchange
    • convert コマンドで作成するコマンド例が掲載
  2. image processing - why font list is empty for imagemagick? - Stack Overflow
    • フォントリストの作成等
  3. 【Proton.jp】 Imagemagickメモ
  4. How can I wrap text at a certain column size? - Unix & Linux Stack Exchange
  5. 【ImageMagick】文字を画像にする | Narumium Blog
  6. ImageMagickで画像に文字を描画 – エラーの向こうへ
  7. プログラミング日誌 :: ImageMagickで日本語の文字列を画像に描画
  8. ImageMagickで画像に文字を入れる - memoメモ
  9. ImageMagick 画像中に文字を入れる - Qiita
  10. ImageMagickで全世界のテキストを文字化けせずに表示する方法 - Qiita
  11. GNU Unifont Glyphs
  12. How to find fonts - ImageMagick
  13. Bashの便利な構文だがよく忘れてしまうものの備忘録 - Qiita
  14. ImageMagick の画像 crop - Qiita