質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

0回答

319閲覧

【Ruby】RMagickの、annotateのwidth,heightオプションがうまく効かない

naoya.n

総合スコア26

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2018/04/28 08:38

RMagickで画像に文字を生成したいです。
文字列の幅を決めて長いものは自動で改行するようにしたいです。
draw.annotate(img, 100, 100, 25, 160, OUT_STR2) do
の100, 100の部分が文字幅のはずですが、なぜか効きません。
どなたか分かりますか。
draw.annotate(img, 100, 100, 25, 160, OUT_STR2) do だと効かずに文字が画像の外に出ていきますが、
draw.annotate(img, 1000, 1000, 25, 160, OUT_STR2) do にすると今度はその文字列ごと表示されません。
どなたが原因がわかりますか。

ruby

1require 'fileutils' 2require 'RMagick' 3 4# メッセージ 5MSG_USAGE = "USAGE: ruby write_copyright.rb filename" 6MSG_NOT_EXIST = "File not exist!" 7# フォント(存在するフォントファイルを指定する) 8FONT = '/Users/naoyanishiyama/Downloads/Noto-unhinted/NotoSansCJKjp- 9Bold.otf' 10FONT2 = '/System/Library/Fonts/SFNSText-MediumItalic.otf' 11 12# 描画文字列 13OUT_STR2 = "'I need a new nigga, for this black cloud to follow I need 14a new nigga, for this black cloud to follow'" 15 16class WriteCopyright 17def initialize(filename) 18@img_file = filename 19end 20 21 22 def write_copyright 23FileUtils.cp(@img_file, @img_file + ".org", {:preserve => true}) # 元画像退避 24img = Magick::ImageList.new(@img_file) # 画像オブジェクト 25draw = Magick::Draw.new # 描画オブジェクト 26 begin 27 28 draw.annotate(img, 100, 100, 25, 160, OUT_STR2) do 29 self.font = FONT2 # フォント 30 self.fill = 'white' # フォント塗りつぶし色(白) 31 self.stroke = 'transparent' # フォント縁取り色(透過) 32 self.pointsize = 40 # フォントサイズ(16pt) 33 self.gravity = Magick::NorthWestGravity # 描画基準位置(右下) 34 end 35 # 画像生成 36 img.write(@img_file) 37 rescue => e 38 STDERR.puts "[ERROR][#{self.class.name}.write_copyright] #{e}" 39 exit 1 40 end 41 end 42end 43 44# 引数取得 45obj_arg = Arg.new 46filename = obj_arg.get_arg 47 48# Copyright 描画 49obj_main = WriteCopyright.new(filename) 50obj_main.write_copyright

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問