Я наконец-то понял это, используя StringIO и гем Koala (оболочка для ruby для API Facebook).Код выглядит следующим образом:
access_token = "asdfasdfasdfasdf"
graph = Koala::Facebook::API.new(access_token)
photo = Magick::Image.read("my_photo.jpg").first
watermark = Magick::Image.read("watermark.png").first
watermarked = photo.composite(watermark, 5, 5, Magick::OverCompositeOp)
photo_graph_id = StringIO.open(watermarked.to_blob) do |strio|
response = graph.put_picture(strio, "image/jpeg", { "message" => "hi" })
response['id']
end
Ключ должен был вызвать to_blob для Magick :: Image и затем создать StringIO из этой строки.В текущей версии драгоценного камня Коала есть сбой со StringIO, но я исправил его в своем форке и отправил запрос на получение: