perlでテーブルアート

| コメント(0) | トラックバック(0)

 にわとりテーブル
↑これ画像の様ですけど実はテーブルタグだけでできてます。

perlを使って画像を■の羅列でを表示と同じくニコニコ動画みてたら画像をテーブルタグで表示するってのがあったのでperlで作ってみました。 下がその動画です。

perlのソースは以下の通りです。

例によって重いのであらかじめ画像を幅100ピクセルに縮小してからテーブルタグを生成しています。 具体的にどういうことをしているかというと、 GDライブラリをつかって画像を読み込んで全てのピクセルの色を調べながらテーブルタグを生成しbgcolorに取得した色を設定しているだけです。 あと最初の方で画像の縮小の処理をしています。

use GD;

$tw = 100;
$fname = "01-hiyo-s2.gif";

$imageorg = GD::Image->new($fname);
$er = $imageorg->width/$tw;
$dw = int($imageorg->width/$er);
$dh = int($imageorg->height/$er);
$image = new GD::Image($dw,$dh);
$image  = GD::Image->newTrueColor( $dw, $dh );
GD::Image::copyResampled($image,$imageorg,0,0,0,0,$dw,$dh,$imageorg->width,$imageorg->height);
my($HTML) ='';
for($y=0;$y < $image->height; $y++){
 $HTML .= "<tr>";
 for($x=0; $x < $image->width; $x++){
  $index = $image->getPixel($x,$y);
  my($r,$g,$b) = $image->rgb($index);
  $hr = unpack("H2",pack("C",$r));
  $hg = unpack("H2",pack("C",$g));
  $hb = unpack("H2",pack("C",$b));
  $HTML .= "<td width=1 height=1 bgcolor=#$hr$hg$hb></td>";
 }
 $HTML .= "</tr>";
}

$HEAD =<<"EOF";
<html>
<body>
<table border="0" cellspacing="0" cellpadding="0">
EOF

$FOOT =<<"EOF";
</table>
</body>
</html>
EOF

open(FILE,">table.html");
print FILE $HEAD;
print FILE $HTML;
print FILE $FOOT;
close(FILE);

変換元の画像はHP素材のおすそわけBlogから頂いてきました。

でもって生成したhtmlはここです。

 

 

 

ブログランキング お役に立てたらクリックしてね。(o*。_。)oペコッ
▼関連記事

トラックバック(0)

ここだよ

トラックバックスパム対策の為この記事にトラックバックを行うにはトラックバック元の記事中にこのページのURL「http://blog.kumacchi.com/2007/06/perl_1.html」を含めてください。

コメントする

よく読まれている記事

アクセスランキング

QRコード

マイページ

 

このブログ記事について

このページは、くまっちが2007年6月 7日 12:31に書いたブログ記事です。

ひとつ前のブログ記事は「perlを使って画像を■の羅列でを表示」です。

次のブログ記事は「フリーのアクアリウムソフト」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

  • seo
track feed KUMA TYPE スカウター : KUMA TYPE フィードメーター - KUMA TYPE あわせて読みたい