多分、Macの環境設定でどこか失敗していて、フォントを指定できても日本語が全然出力されない
試行錯誤せど、試行錯誤せど、上手くいかん🙅♀️
。。。
ここで、神降臨
komasaru/rmagick_available_fonts.rb
実行可能なフォントを全て画像に出力するという、、、、!!(暇なのかな?)
出力を日本語にして、エラーはrescueするように書き換えて、、、
kami.rb
require 'RMagick'
F_SIZE = 24 # フォントサイズ (pt)
FILE = "font_list_jp.png" # 出力ファイル名
class RmagickAvailableFonts
# フォント一覧画像作成
def make_image
fonts = Magick.fonts # フォント一覧
image = Magick::Image.new(600, (F_SIZE + 20) * fonts.size + 10) { # 画像オブジェクト
self.background_color = '#DDDDCC'
}
draw = Magick::Draw.new # 描画オブジェクト
begin
# 全フォントについて LOOP
fonts.each_with_index do |f, i|
begin
# コンソール出力
puts "#{sprintf("%3d", i + 1)}: #{f.name}"
# 描画
# (次のフォントは 20pt 下へずらす)
draw.annotate(image, 0, 0, 10, 10 + (F_SIZE + 20) * i, "#{i + 1}: ああ") do
self.font = f.name # フォント名
self.fill = 'black' # フォント塗りつぶし色(黒)
self.stroke = 'transparent' # フォント縁取り色(透過)
self.pointsize = F_SIZE # フォントサイズ
self.gravity = Magick::NorthWestGravity # 描画開始位置(左上)
end
rescue => e
p "「#{f.name}」は失敗した"
end
end
# 画像作成
image.write(FILE)
rescue => e
STDERR.puts "[ERROR][#{self.class.name}.make_image] #{e}"
exit 1
end
end
end
# フォント一覧画像作成
obj_main = RmagickAvailableFonts.new
obj_main.make_image
確認して見ると、
.rb
require 'RMagick'
p Magick.fonts[2]
# <struct Magick::Font name="AppleMyungjo", description="AppleMyungjo Regular", family="AppleMyungjo", style=UndefinedStyle=0, stretch=UndefinedStretch=0, weight=0, encoding=nil, foundry=nil, format="ttf">
p Magick.fonts[13]
# <struct Magick::Font name="ArialUnicode", description="Arial Unicode MS", family="Arial Unicode", style=UndefinedStyle=0, stretch=UndefinedStretch=0, weight=0, encoding=nil, foundry=nil, format="ttf">
[2]は伸ばし棒が文字化けしてしまったので、[13]を使うことにした。
(まあ、モックなら何でも良いかなと)
誰か、Rmagickのフォントの設定方法知っている人いたら教えてください〜〜〜〜😱