Resulta que podes llamar a la gema de image2ascii y hacer cortar una imagen.gif en varias imagenes para procesarlas.

Edité el run.rb del oficial para poder pasarle los parametros como ARGS

# uso:
# $ ruby run-1.rb $filename '$chars'

require 'rmagick'
require 'image2ascii'
require 'json'
require 'fileutils'
# ingresar nombre de archivo del gif
file = ARGV.first
file_name_with_extn = File.basename file 
# ingresar que caracteres se van a usar
chars = ARGV.last

animated = Magick::Image.read("#{file_name_with_extn}")
count = 0
tempHash = {}
animated.each do |x|
    x.write("./images/image#{count}.jpg")
    dude = Image2ASCII.new("./images/image#{count}.jpg")
    # usar caracteres ingresados
    dude.chars = "#{chars}"
    # generar en pantalla completa ( width : dude.winsize ) 
    text = dude.generate( width: 80)
    # poner la salida en text
    puts text
    tempHash["#{count}"] = text.gsub!("\n", "<br>")
    count = count + 1
end

FileUtils.rm_rf("./images/.", secure: true)

File.open("steps.json","w") do |f|
    f.write(tempHash.to_json)
end

Por ejemplo