ターミナルに画像を表示する

  • 32
    Like
  • 0
    Comment
More than 1 year has passed since last update.

 概要と元ネタ。

terminal で画像を cat できるようにした - 終わる世界とコンテンツ

#!/usr/bin/env ruby

require 'curses'
require 'rmagick'

Curses.init_screen
columns = Curses.cols / 2 
Curses.close_screen

ARGV.each {|filename|
  source = Magick::Image.read(filename).first
  image = source.sample(1.0 * columns / source.columns)

  puts (0...image.rows).map {|row|
    image.get_pixels(0, row, image.columns, 1).map {|pixel|
      color = [pixel.red, pixel.green, pixel.blue].map {|n| n * 5 / (255 * 255)}
      "\x1b[48;5;#{16 + color[0] * 36 + color[1] * 6 + color[2]}m  \x1b[0m"
    }.join
  }.join("\n")
}

デース!

楽しい! ✌(’ω’✌ )三✌(’ω’)✌三( ✌’ω’)✌

ANSI escape code - Wikipedia