2016年 08月 31日

Excelで佐々木希を描く with Ruby

ことはじめ

「Excelで佐々木希を描く with ◯◯」が流行っていたので
それに乗っかってみました!

元ネタ

Excelで佐々木希を描く with python

環境

OS X ElCapitan 10.11.5
ruby 2.0.0p648 (macのデフォルト)

準備

terminalにて
画像処理のための rmagickとExcel操作の為の rubyXLというgemをインストールします

terminal
$ gem install rmagick
$ gem install rubyXL

ソースコード

draw_excel.rb
require 'rubyXL'
require 'RMagick'

img = Magick::ImageList.new(ARGV[0])

# Excelを作成し、最初のシートを選択
book = RubyXL::Workbook.new
sheet = book[0]

img.each_pixel do |pixel, y, x|

  # ピクセル色を16進数で取得
  color = pixel.to_color(Magick::AllCompliance, false, img.depth, true)
  color.delete!('#')

  # 塗りつぶし
  sheet.add_cell(x, y, '')
  sheet.sheet_data[x][y].change_fill(color)

  # 行、列の幅変更
  sheet.change_column_width(x, 0.01)
  sheet.change_row_height(y, 5)
end

file_name = File.basename("#{ARGV[0]}", '.*')
book.write("#{file_name}.xlsx")

実行

terminal
$ ruby draw_excel.rb sasaki.png

完成品

元データ

sasaki

出力

sasaki2

拡大

sasaki1

おおー!(感動)

さいごに

処理が完了するまで1時間弱かかりましたw

Yoshida e070c695df5d4bbe8e6b800136356dbfb59e78836e5658e2b5f4e4e33df4a66d
Ryo

グルメ旅とお酒が大好きなプログラマー
大阪界隈の勉強会運営もやってます。
趣味はボルダリング

follow us in feedly このエントリーをはてなブックマークに追加