redcodefinal
redcodefinal

Reputation: 909

RMagick randomly orders pngs into gif

Attempting to bundle pngs into a gif, using ImageList is giving seemingly random order to gif frames. Example broken gif

The images are named name-#######.png (example directory) and appear to be in correct order.

gif code

def make_gif
  snapshots.length.times do |frame|
    render_frame frame
  end
  gif = ImageList.new(*Dir["#{name}/#{name}-*.png"])
  gif.delay = 100
  gif.write("#{name}/#{name}.gif")
end

Upvotes: 0

Views: 45

Answers (1)

Aleksei Matiushkin
Aleksei Matiushkin

Reputation: 121000

Dir#glob never promised to return ordered list of filenames.

So, you should sort a list yourselves:

#                                         ⇓⇓⇓⇓⇓
ImageList.new(Dir["#{name}/#{name}-*.png"].sort)

Hope it helps.

Upvotes: 1

Related Questions