#はじめに
MiniMagicで画像の上に文字を書き出したいが、日本後が出力されない。
以下の例だとtestてすてす
と出て欲しいが、test
しか表示されない。
def make_picture()
color = "black"
draw = "text 10,10 '#{sentense}'"
font = ".fonts/GenEiGothicN-U-KL.otf"
base = "app/assets/images/ogotte.png"
i = MiniMagick::Image.open(base)
#image.combine_options do |i|
i.font "Arial.ttf"
i.fill color
i.gravity 'center'
i.draw "text 200,200 'testてすてす'"
i.pointsize '100'
i.write "app/assets/images/22.png"
end
end
#調査
フォントが日本語に対応していないと表示されないという記事が多い。しかし、
今回はi.font "GenEiGothicN-U-KL.otf"
で日本語対応のフォントを指定している。
実行しているクエリを確認したが、
-type .fonts/GenEiGothicN-U-KL.otf
で フォントはちゃんと指定されているようだった。
絶対パスでも試したがダメだった。
iMagick::Error (`gm mogrify -type .fonts/GenEiGothicN-U-KL.otf /var/folders/j0/d210w9lx3qg27c3321by91840000gn/T/mini_magick20180710-5786-a661kl.png`
当初セットアップ時に以下のUnable to read font
というエラーが発生して、フォントが読み込みできていなかったので、brew install ghostscript
したことを思い出す。
iniMagick::Error (`gm mogrify -draw text 200,200 'testてすてす' /var/folders/j0/d210w9lx3qg27c3321by91840000gn/T/mini_magick20180710-7111-1tu4c2k.png` failed with error:
gm mogrify: Unable to read font (/usr/local/share/ghostscript/fonts/n019003l.pfb) [No such file or directory].
):
brew uninstall ghostscript
でghostscriptをアンインストールしてみと、
同じエラーが発生する。指定しているフォントではなく、
/usr/local/share/ghostscript/fonts/n019003l.pfb
を使用してしまっていた。
#解決
乱暴だがghostscript
を再度インストール後、/usr/local/share/ghostscript/fonts/n019003l.pfbをn019003l.pfb_bk
にリネーム。
GenEiGothicN-U-KL.otf
をn019003l.pfb
にリネームして、/usr/local/share/ghostscript/fonts/
に配置したところ日本語が表示された。