画像をHTMLテーブルに変換するスクリプト
画像をHTMLテーブルに変換するスクリプトを書いてみました。特に使い道はありませんが・・・。
require 'rubygems' require 'RMagick' require 'erb' # 画像をテーブルに変換するスクリプト。 imgs = Magick::Image.read("./kitten.jpg") img = imgs.first erb = ERB.new( <<-TEMPLATE, nil, "%" ) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <style> td.cell { width: 1px; height:1px; } </style> </head> <body> <table cellspacing=0 cellpadding=0> <tr> % prev_y = 0 % img.each_pixel {|p,x,y| % color = p.to_color( Magick::AllCompliance, false, 8, true ) <td class="cell" style="background-color:<%=color%>;"></td> % if y != prev_y </tr></tr> % end % prev_y = y % } </tr> </table> </body> </html> TEMPLATE open( "./img.html", "w" ) {|f| f << erb.result(binding) }
↓の画像を対象に実行すると、
このようなHTMLが出力されます。※そこそこ重いので閲覧はご注意。