Perl と ImageMagick を使って画像を HTML の table に変換

- ImageMagick で画像を HTML に変換
  http://blog.shebang.jp/archives/50279808.html

  というのをみて,そういえば大分前に似たようなのを作ったので紹介しておこう.

#!/usr/bin/env perl
# tableart - 画像ファイルからテーブルアートを作成

use strict;
use warnings;
use Image::Magick;

my $image = readImage();
my ($width, $height) = $image->Get('width', 'height');

print qq(<table border="0" cellpadding="0" cellspacing="0">\n);    
for (my $h = 0; $h < $height; ++$h) {
    my @colors = ();
    for (my $w = 0; $w < $width; ++$w) {
        my @pixel = split /,/, $image->Get("Pixel[$w, $h]");
        my ($r, $g, $b) = map { sprintf '%02x', ($_ > 0) ? int($_ / 256) : 0; } @pixel;
        push @colors, "#$r$g$b";
    }
    print qq(<tr>\n);
    map { print qq(<td width"1" bgcolor="$_"></td>\n); } @colors;
    print qq(</tr>\n);
}
print qq(</table>);

sub readImage {
    my $image = new Image::Magick;
    if (@ARGV >= 1) {
        # ファイルから画像を読む
        $image->ReadImage($ARGV[0]);
    } else {
        # 標準入力から画像を読む
        $image->ReadImage('-');
    }
    return $image;
}


  大分前に作ったので若干のダサさは残るけど,これでいわゆるテーブルアートを作ることができる.

- テーブルアート(HTML タグ) のページ
  http://hinoki.sakura.ne.jp/~okada/table/