X-Git-Url: http://git.shiar.nl/minime.git/blobdiff_plain/097f2f07325c34df989aa7e23b7a5fb455bcb930..58ef2fa9c88f4bac0589cd85e580b92ec069e397:/termimg diff --git a/termimg b/termimg index 24f6a33..6876158 100755 --- a/termimg +++ b/termimg @@ -54,13 +54,21 @@ eval { push @info, "# $md5 ($filesize)"; } or warn $@; +my $aspect = eval { + require Term::ReadKey; + my ($w, $h, $x, $y) = Term::ReadKey::GetTerminalSize(); + return $x/$w / $y*$h; +}; + open my $pgm, '-|', convert => ( $file => -delete => '1--1', - '+distort' => SRT => '0,0 1,.56 0', + $aspect ? ('+distort' => SRT => "0,0 1,$aspect 0") : (), -thumbnail => $size || '40x12', -colorspace => 'gray', '-normalize', + -level => '-1%', + -channel => 'A', -threshold => '50%', -background => 'black', -layers => 'flatten', -compress => 'none', @@ -72,10 +80,31 @@ if (<$pgm> eq "P2\n") { <$pgm>; # ignore depth my @ch = split //, " .:oO@"; while (<$pgm>) { - print $ch[ $_ * @ch >> 8 ] for /\d+/g; + print !$_ ? '/' : $ch[ $_ * @ch >> 8 ] for /\d+/g; print ' ', shift @info if @info; print $/; } substr $_, 0, 0, ' ' x ($width + 1) for @info; } say for @info; + +=head1 NAME + +termimg - media file fingerprint and metadata + +=head1 SYNOPSIS + +B [] + +=head1 DESCRIPTION + +Identify given file by ascii image +with a summary of distinctive metadata. + +=head1 AUTHOR + +Mischa POSLAWSKY + +=head1 LICENSE + +AGPL3+