#!/usr/bin/perl #turn jpg and png files into animated gifs # #requires ImageMagick, Ghostscript, and jp2a use IO::Handle; use LWP::Simple; $|=1; $asciify = 0; $count = 0; $debug=0; $pid = $$; #note- $basedir must be writable by 'nobody' $basedir = "/usr/local/apache2/prank-o-matic.com/ascii/tmp"; $baseurl = "http://prank-o-matic.com/ascii/tmp"; if ($debug == 1) { open (DEBUG, '>>/usr/local/squid/var/logs/ascii_debug.log'); } autoflush DEBUG 1; while (<>) { chomp $_; if ($_ =~ /(.*\.gif)/i) { $url = $1; if ($debug == 1) { print DEBUG "INPUT- $url\n"; } $file = "$basedir/$pid-$count.gif"; getstore($url,$file); if ($debug == 1) { print DEBUG "fetched image- $url\n"; } system("/usr/local/bin/convert", "$file", "$basedir/$pid-$count.jpg"); system("chmod", "a+r", "$basedir/$pid-$count.jpg"); if ($debug == 1) { print DEBUG "converted gif to jpg- $url\n"; } $asciify = 1; } elsif ($_ =~ /(.*\.png)/i) { $url = $1; if ($debug == 1) { print DEBUG "INPUT- $url\n"; } $file = "$basedir/$pid-$count.png"; getstore($url,$file); if ($debug == 1) { print DEBUG "fetched image- $url\n"; } system("/usr/local/bin/convert", "$file", "$basedir/$pid-$count.jpg"); system("chmod", "a+r", "$basedir/$pid-$count.jpg"); if ($debug == 1) { print DEBUG "converted png to jpg- $url\n"; } $asciify = 1; } elsif ($_ =~ /(.*\.jpg)/i) { $url = $1; if ($debug == 1) { print DEBUG "INPUT- $url\n"; } $file = "$basedir/$pid-$count.jpg"; getstore($url,$file); if ($debug == 1) { print DEBUG "fetched image- $url\n"; } system("chmod", "a+r", "$basedir/$pid-$count.jpg"); $asciify = 1; } else { print "$_\n"; if ($debug == 1) { print DEBUG "PASS- $_\n"; } } if ($asciify == 1) { $size = `/usr/local/bin/identify $basedir/$pid-$count.jpg | cut -d" " -f 3`; chomp $size; if ($debug == 1) { print DEBUG "calculated image size- $url\n"; } system("/usr/local/bin/jp2a $basedir/$pid-$count.jpg --invert --output=$basedir/$pid-$count-ascii.txt"); system("/usr/local/bin/convert -font Courier-Bold label:\@$basedir/$pid-$count-ascii.txt -size $size $basedir/$pid-$count-ascii.jpg"); system("chmod", "a+r", "$basedir/$pid-$count-ascii.jpg"); if ($debug == 1) { print DEBUG "OUTPUT- $url to $baseurl/$pid-$count-ascii.jpg\n"; } print "$baseurl/$pid-$count-ascii.jpg\n"; } $asciify = 0; $count++; }