テキストファイルをざっくりと画像ファイルにしたい
テキストファイルをざっくりと画像ファイルにしたい
1ページ分くらいのテキストファイルをざっくりと1枚ものの画像ファイルにしたい、Macで、コマンドラインで。
日本語テキストが前提。
使用するもの
fold
コマンドで任意の文字数でテキストを改行- ImageMagick の
convert
コマンドで画像にテキスト描画
ImageMagickのインストール
brew install imagemagick
具体的な手順
convert
コマンドで使えるフォントを確認
$ convert -list font #テキストファイルに書き出すなら下記のようなコマンド $ convert -list font > font_list.txt
- 表示されたフォント名のリストから使用したいフォント名をコピーして下記コマンドの<フォント名>部分を差し替えて実行
$ 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
でフォントの一覧が出てこない場合、また、使いたいフォントが出てこない場合
以下「<ユーザー名>」はログインしているユーザー名
- 下記コマンドでフォントの設定ファイルの場所を確認
$ 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" ...
- フォントの場所を設定ファイルに書き出すスクリプトをダウンロード
$ 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
- フォントリストの設定ファイルを生成
$ 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
- 生成されたフォントリストの設定ファイル「type.xml」を「/Users/<ユーザー名>/.config/ImageMagick/type.xml」に配置
$ mkdir -p "/Users/<ユーザー名>/.config/ImageMagick/" $ cp type.xml "/Users/<ユーザー名>/.config/ImageMagick/type.xml"
- または、配置する場所は "/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>
参考ページ
- command line - How to transform a text file into a picture - Unix & Linux Stack Exchange
- convert コマンドで作成するコマンド例が掲載
- image processing - why font list is empty for imagemagick? - Stack Overflow
- フォントリストの作成等
- 【Proton.jp】 Imagemagickメモ
- How can I wrap text at a certain column size? - Unix & Linux Stack Exchange
- 【ImageMagick】文字を画像にする | Narumium Blog
- ImageMagickで画像に文字を描画 – エラーの向こうへ
- プログラミング日誌 :: ImageMagickで日本語の文字列を画像に描画
- ImageMagickで画像に文字を入れる - memoメモ
- ImageMagick 画像中に文字を入れる - Qiita
- ImageMagickで全世界のテキストを文字化けせずに表示する方法 - Qiita
- GNU Unifont Glyphs
- How to find fonts - ImageMagick
- Bashの便利な構文だがよく忘れてしまうものの備忘録 - Qiita
- ImageMagick の画像 crop - Qiita