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/