Código:
<?php error_reporting(0); /** * Get the width and height of the destination image * from the POST variables and convert them into * integer values */ $w = (int)$_POST['width']; $h = (int)$_POST['height']; // create the image with desired width and height $img = imagecreatetruecolor($w, $h); // now fill the image with blank color // do you remember i wont pass the 0xFFFFFF pixels // from flash? imagefill($img, 0, 0, 0xFFFFFF); $rows = 0; $cols = 0; // now process every POST variable which // contains a pixel color for($rows = 0; $rows < $h; $rows++){ // convert the string into an array of n elements $c_row = explode(",", $_POST['px' . $rows]); for($cols = 0; $cols < $w; $cols++){ // get the single pixel color value $value = $c_row[$cols]; // if value is not empty (empty values are the blank pixels) if($value != ""){ // get the hexadecimal string (must be 6 chars length) // so add the missing chars if needed $hex = $value; while(strlen($hex) < 6){ $hex = "0" . $hex; } // convert value from HEX to RGB $r = hexdec(substr($hex, 0, 2)); $g = hexdec(substr($hex, 2, 2)); $b = hexdec(substr($hex, 4, 2)); // allocate the new color // N.B. teorically if a color was already allocated // we dont need to allocate another time // but this is only an example $test = imagecolorallocate($img, $r, $g, $b); // and paste that color into the image // at the correct position imagesetpixel($img, $cols, $rows, $test); } } } /* //añade marca de agua, cambiar la ruta a la fuente TTF $string="ymipollo.com"; $font = "/home/toro/mdn/test/thin.ttf"; $size=6; $fsize = @ImagettFbbox($size,45,$font,$string); $black = imagecolorallocate($img, 0, 0, 0); $white = imagecolorallocate($img, 255, 255, 255); $dx = abs($fsize[2]-$fsize[0]); $dy = abs($fsize[5]-$fsize[3]); $x = (imagesx($img)/2) - ($dx/2); $y = (imagesy($img)-$dy)-10; imagettftext($img,$size,45,300,$y,$black,$font,$string); imagettftext($img,$size,45,301+1,$y+1,$white,$font,$string); */ // print out the correct header to the browser header("Content-type:image/jpeg"); // display the image imagejpeg($img, "", 90); imagedestroy($img); ?>