2016-12-06 12 views
0
require 'rmagick' 
require 'open-uri' 
include Magick 

giflist = Magick::ImageList.new('pewpewpew.gif') 
open('avatar.jpg', 'wb') do |file| 
    file << open('https://cdn.discordapp.com/avatars/120571255635181568/8e37daf54a9c631afe659ebcb87af959.jpg').read 
end 

avatar = Magick::Image.read('avatar.jpg').first 

newavatar = Draw.new { 
    self.fill = 'black' 
    self.stroke = 'transparent' 
    self.tile = avatar 
    self.fill_pattern = avatar 
    self.stroke_pattern = avatar 
    self.gravity = NorthGravity 
} 
giflist.each { |image| newavatar.composite(20, 20, 40, 40, image) }# x, y, width, height, image 
giflist.write('newgif.gif') 

とルビーでGIFにすべてのフレームに画像を貼り付けます。私はthatsのを知っているので、画像が正しくダウンロードされない問題どのように私は基本的に私はGIFにこのJPGをペーストしようとしていますが、何らかの理由でナッシングが起こって、私はすべてのエラーを取得していないよrmagick

GIF - >私は完全に正直に言うつもりですGif Link

+0

申し訳ありませんが、Rubyを読むことはできませんが、あなたの 'newavatar'は何かを含んでいないかもしれないと推測しています。 –

答えて

1

、私が書かれたとして、これはerroringされていない理由はわかりません。私はRuby'ismsに物事がうまくいかない理由を伝えることができますが、私が行動を説明しようとすればするほど、それを証明することができなくなります。

とにかく、ここで私は私が知っていると思うものです:

newavatar.composite(20, 20, 40, 40, image) 

これはアバターの上にGIF を描いています。しかし、変数を入れ替えることはできません。それは "no cur_imageが定義されている"と爆発する。

giflist.each { |image| newavatar.composite(20, 20, 40, 40, image) } 

は、いずれかのフレームのそれぞれは、newavatarに返されている、または起こって何の割り当て(image = giflist.each { … })はありませんので、彼らは離れてスローされます。しかし、やはり、どのような方法で試してみても、さまざまなエラーが発生します。

require 'rmagick' 
require 'open-uri' 
include Magick 

giflist = Magick::ImageList.new('pewpewpew.gif') 
open('avatar.jpg', 'wb') do |file| 
    file << open('https://cdn.discordapp.com/avatars/120571255635181568/8e37daf54a9c631afe659ebcb87af959.jpg').read 
end 

avatar = Magick::Image.read('avatar.jpg').first 

giflist.each { |image| image.composite!(avatar, NorthWestGravity, 40, 40, OverCompositeOp) } 
giflist.write('newgif.gif') 

そして、もっと重要なのは、結果:あなたはでフレームを置き換えるcomposite!の使用を、注意しましょう

Avatar overlaid on gif

これは私が思いついたのソリューションです場所(まだgiflist変数にあります)。

あなたがしなければならない最後の部分は、アバターのサイズを40x40に減らすことです。これは1行でなければならないので、残念です。

非常に簡単ですか?

+0

非常にうまく働いてくれました。助けてくれてありがとうございました。私は "cur_image"エラーに遭遇し、何をすべきか分からなかったのでちょっと立ち往生しました。重力を割り当てないこと:s – Cyan101

関連する問題