Image::Term256Colorで遊んでみた


githubにあるデモがクールだったので何か面白いことができない
かなと思って試してみた。

コード

モジュールを使ったのではなく、付属のアプリの img2termというのを
使っているだけですが・・・。

#!perl
use strict;
use warnings;

use Web::Scraper;
use URI;
use Furl;

popular_actresses_to_term();

sub popular_actresses_to_term {
    my $limit = shift;
    $limit ||= 3;

    my $url = 'http://www.dmm.co.jp/digital/videoa/-/ranking_all/=/type=actress/';
    my $ranking = scraper {
        process 'td.bd-b > a > img', "actresses[]" => '@src';
    };

    my $res = $ranking->scrape( URI->new($url) );

    my $index = 0;
    my $furl = Furl->new;
    for my $image (@{$res->{actresses}}) {
        my $img_url = $image->as_string;
        my $res = $furl->get( $img_url );
        unless ( $res->is_success ) {
            warn "Can't download $img_url\n";
            next;
        }

        open my $fh, "|-", 'img2term' or die "Can't open img2term";
        print $fh $res->content;
        close $fh;

        last unless ++$index < $limit;
    }
}

実行

初め githubのサンプルを見たとき、単純な絵じゃないと無理だなって思ったん
ですけど、フォントをすごく小さくしたら人の顔でもなんとかなるんじゃない
かなって思って試してみました。その結果が以下のとおりです。
(画像はつぼみです)


ターミナルエミュレータ上にしてはなかなか綺麗にできたんじゃないでしょうか.
なおフォントサイズは 1です。

終わりに

Xがなくても頑張れば画像見れるということがわかりました。
夢が広がりますね。