Rubydで、Rmagickのannotateメソッドであらかじめ用意された画像に文字を加えるものを書いています。
指定した最大文字数を超えた場合、その直前の単語の終わりで改行するようにしています。
ruby
1 STR = "I need a new nigga,for this black cloud to follow" 2 3 draw.annotate(img, 0, 0, 25, 180, STR.scan(/.{0,26}[a-z.!?,;](?:\b|$)/mi)) do 4 self.font = FONT2 5 self.fill = 'white' 6 self.stroke = 'transparent' 7 self.pointsize = 32 8 self.gravity = Magick::NorthWestGravity 9 end
しかしこのdraw.annotatedを実行したところ、
【ERROR】 no implicit conversion of Array into String
というエラーが出ます。
ruby
1puts STR.scan(/.{0,26}[a-z.!?,;](?:\b|$)/mi)
を実行すると欲しい改行したテキストが返ってくるのですがどうすればannotateメソッド上で反映させられるでしょうか。
ちなみに
ruby
1 STR = "I need a new nigga,for this black cloud to follow" 2 3 draw.annotate(img, 0, 0, 25, 180, STR) do 4 self.font = FONT2 5 self.fill = 'white' 6 self.stroke = 'transparent' 7 self.pointsize = 32 8 self.gravity = Magick::NorthWestGravity 9 end
にすると、改行していないテキストでうまく動きます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/10 08:43