My first. Special thanks those who tested it for me (Zaxo, Macphisto, vroom, and others who i might've forgotten! :). Also, thanks to tilly and jmcnamara from whom i borrowed some subs.
($_='fqahbOgrt1yrkvCgrt1QT1rtnzV')=~y/N-ZA-Mn-za-m1/A-Za-z:/; $_ =join('',reverse(split //)); /(.+):(.+):(.+):(.+)/;require "$2.pm";local $/;$i="$2::$1"->new($ARGV[0]||unpack('u',<DATA> ))or die$!; @a=(' ','.',':','+','*','!','$','#');%c =map{int( 255/$#a*i($_,@a))=>$_}@a;($l,$h)=$i->$4;for $y(0..$h-1){print $c{c(a($i->rgb($i->$3($_,$y))),keys%c)}for(0..$l-1);print"\n" ;}sub i{@_{@_}=-1..@_;$_{$_[0]}}sub c{(sort{abs$a-$_[0]<=>abs $b-$_[0]}@_)[1]} sub a{eval(join"+",@_)/@_} __DATA__ MB5!.1PT*&@H````-24A$4@```"@````7"`(```#VL)I"````!&=!34$``%C' M_$?@`@```"!C2%)-``!Z)0``@(,``/G_``"`Y@``=2X``.I?```ZEP``%V]I MY,0K```!'$E$051XG&)@&"``$$`(]!\)4-$T7`H``@A%*1J#<BOQ&`400#2Q M&"L;#0`$$(H&J@0UL@EXC`((()H@8BP&""!T#6CN10.8*K$J(,8$@`#"8B6< M1%.'WPYD+;A\C*P1((#0`P?98DS56%V--9!P609G`P00=LUH_L8:=/A%\,A" M&``!A,73:%9B.I\J%@,$$`&+,:6H93%``&&WF"2#R+,8((!P6HS'$52Q&""` MJ&PQ,>HA#(``(LIB-#68@FBV$A,>``&$TV),^W#)8EJ/51S--(``PFXQFF/1 M`%978A7!8P)``.&T&#\@23%6`!!`*&YDP!H'N!5C<HD'``$$U8QL"I&*"0KB I!P`!A+"/2(<3%6U$`(``&C`$$&``-L:,GCUB8/0`````245.1*Y"8((`
Notes:
Requires GD 1.3 or greater. Also, try passing this: http://thunderbolt.csd.unb.ca/~bdpc/g.png along with the script at the command line (ie script.pl g.png) or try your own.


--
Rock is dead. Long live paper and scissors!