2009-12-09 30 views
1

我在Snow Leopard上使用RMagick 2.12.2和ImageMagick 6.5.6-10。我正在嘗試在一組照片上放置標題,並且我得到了標題的工作方式(即它出現在圖像上),但我無法使重力參數正常工作。無法使用引力與RMagick和'標題'一起工作

無論我設定了什麼,我都會在NorthGravity上做一些變化。

例如:將它設置爲SouthWestGravity給了我NorthWestGravity。將其設置爲SouthEastGravity可爲我提供NorthEastGravity。將它設置爲中心重力給了我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 
+0

你有沒有[記](http://xkcd.com/353/)爲'進口antigravity' ...抱歉錯誤的語言。 –

回答

1

你可能早已繼續前行,但我發現了一個非常簡單的答案,這 - 使用

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

換句話說,你想附加選項(使用'true'來垂直堆疊)。

0

我認爲你的問題是你將重力應用到標題圖像的尺寸而不是基礎圖像的尺寸。您的標題將東/西在其寬度範圍內自行對齊,但由於它使其擁有自己的高度,所以北/南總是意味着北。

你可能想在flatten_images調用,而不是看起來可以指定重力...

相關問題