1

Snow Leopard で ImageMagick 6.5.6-10 と共に RMagick 2.12.2 を使用しています。写真のコレクションにキャプションを付けようとしています。キャプションは機能します (つまり、画像に表示されます) が、重力パラメーターを正しく機能させることができません。

何を設定しても、NorthGravity にはいくつかのバリエーションがあります。

例: SouthWestGravity に設定すると、NorthWestGravity が得られます。SouthEastGravity に設定すると、NorthEastGravity が得られます。これを CenterGravity に設定すると、NorthGravity が得られます。

つまり、キャプションが画像の上からはみ出すことができません。

「注釈」の使用を検討しますが、各画像の長いキャプション テキストが折り返されるように「キャプション」が必要です。

私は何を間違っていますか?

コードは次のとおりです。

#!/usr/bin/env ruby

require "rubygems"
require "yaml"
require "RMagick"
include Magick

base_dir = "/Users/mike/Desktop/caption_test"

photo_log = File.open("#{base_dir}/photo_log.yaml" )

YAML::load_documents(photo_log) do |doc|

  caption = doc["photo-caption"]
  filename = doc["file"]

  canvas = ImageList.new.from_blob(open("#{base_dir}/#{filename}") { |f| f.read } )

  canvas << Magick::Image.read("caption:#{caption}") { 
  self.gravity = SouthWestGravity
  self.size = "#{canvas.first.columns}"
  self.font = "Helvetica Neue"
  self.pointsize = 12
  self.background_color = "#fff"
 }.first

 canvas.flatten_images.write("#{base_dir}/images/#{filename}")

end
4

2 に答える 2

1

あなたはおそらく先に進んでから長い間ですが、私はこれに対する非常に簡単な答えを見つけました-使用

canvas.append(true).write("#{base_dir}/images/#{filename}")

つまり、追加オプションが必要です(垂直方向にスタックするには「true」を使用します)。

于 2010-12-22T16:51:32.983 に答える
0

あなたの問題は、下にある画像の寸法ではなく、キャプション画像の寸法に重力を適用していることだと思います。キャプションは、その幅内で東/西に整列しますが、独自の高さになるため、北/南は常に北を意味します。

代わりに、flatten_images呼び出しで重力を指定することをお勧めします。これは可能に見えます...

于 2013-02-01T16:06:58.083 に答える