Module: TokenReel::GifWriter

Defined in:
lib/token_reel/gif_writer.rb

Class Method Summary collapse

Class Method Details

.assemble(frames, out_path, loop_count) ⇒ Object

frames: [{ path: "...", delay_cs: Integer }, ...] in playback order.

Raises:



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/token_reel/gif_writer.rb', line 8

def self.assemble(frames, out_path, loop_count)
  raise RenderError, "no frames to assemble" if frames.empty?

  argv = [Renderer.convert_binary, "-loop", loop_count.to_s]
  frames.each do |f|
    argv += ["-delay", f[:delay_cs].to_s, "-dispose", "Background", f[:path]]
  end
  argv << out_path

  _out, err, status = Open3.capture3(*argv)
  raise RenderError, "ImageMagick failed to assemble GIF: #{err}" unless status.success?

  out_path
end