1*401a61e7Swikidesign<?php 2*401a61e7Swikidesign 3*401a61e7Swikidesignbuild_monster($_REQUEST['seed'],$_REQUEST['size']); 4*401a61e7Swikidesign 5*401a61e7Swikidesignfunction build_monster($seed='',$size=''){ 6*401a61e7Swikidesign // init random seed 7*401a61e7Swikidesign if($seed) srand( hexdec(substr(md5($seed),0,6)) ); 8*401a61e7Swikidesign 9*401a61e7Swikidesign // throw the dice for body parts 10*401a61e7Swikidesign $parts = array( 11*401a61e7Swikidesign 'legs' => rand(1,5), 12*401a61e7Swikidesign 'hair' => rand(1,5), 13*401a61e7Swikidesign 'arms' => rand(1,5), 14*401a61e7Swikidesign 'body' => rand(1,15), 15*401a61e7Swikidesign 'eyes' => rand(1,15), 16*401a61e7Swikidesign 'mouth'=> rand(1,10) 17*401a61e7Swikidesign ); 18*401a61e7Swikidesign 19*401a61e7Swikidesign // create backgound 20*401a61e7Swikidesign $monster = @imagecreatetruecolor(120, 120) 21*401a61e7Swikidesign or die("GD image create failed"); 22*401a61e7Swikidesign $white = imagecolorallocate($monster, 255, 255, 255); 23*401a61e7Swikidesign imagefill($monster,0,0,$white); 24*401a61e7Swikidesign 25*401a61e7Swikidesign // add parts 26*401a61e7Swikidesign foreach($parts as $part => $num){ 27*401a61e7Swikidesign $file = dirname(__FILE__).'/parts/'.$part.'_'.$num.'.png'; 28*401a61e7Swikidesign 29*401a61e7Swikidesign $im = @imagecreatefrompng($file); 30*401a61e7Swikidesign if(!$im) die('Failed to load '.$file); 31*401a61e7Swikidesign imageSaveAlpha($im, true); 32*401a61e7Swikidesign imagecopy($monster,$im,0,0,0,0,120,120); 33*401a61e7Swikidesign imagedestroy($im); 34*401a61e7Swikidesign 35*401a61e7Swikidesign // color the body 36*401a61e7Swikidesign if($part == 'body'){ 37*401a61e7Swikidesign $color = imagecolorallocate($monster, rand(20,235), rand(20,235), rand(20,235)); 38*401a61e7Swikidesign imagefill($monster,60,60,$color); 39*401a61e7Swikidesign } 40*401a61e7Swikidesign } 41*401a61e7Swikidesign 42*401a61e7Swikidesign // restore random seed 43*401a61e7Swikidesign if($seed) srand(); 44*401a61e7Swikidesign 45*401a61e7Swikidesign // resize if needed, then output 46*401a61e7Swikidesign if($size && $size < 400){ 47*401a61e7Swikidesign $out = @imagecreatetruecolor($size,$size) 48*401a61e7Swikidesign or die("GD image create failed"); 49*401a61e7Swikidesign imagecopyresampled($out,$monster,0,0,0,0,$size,$size,120,120); 50*401a61e7Swikidesign header ("Content-type: image/png"); 51*401a61e7Swikidesign imagepng($out); 52*401a61e7Swikidesign imagedestroy($out); 53*401a61e7Swikidesign imagedestroy($monster); 54*401a61e7Swikidesign }else{ 55*401a61e7Swikidesign header ("Content-type: image/png"); 56*401a61e7Swikidesign imagepng($monster); 57*401a61e7Swikidesign imagedestroy($monster); 58*401a61e7Swikidesign } 59*401a61e7Swikidesign} 60