I'm using the above class to save an image out of flash when a user clicks a Save button i.e I am using http://www.sephiroth.it/tutorials/fl...en/page002.php
I have used this class a few times before but for some reason i am having problems saving out the image to the folder when the specified image size is of a certain dimension or higher:
e.g my flash code is:
So as you can see the last line does not work... the previous lines save out an image to the 'posters' folder successfully ... is there some GD setting that is causing this issue? Any help is appreciated..been stuck on this for the last hour!!Code:import it.sephiroth.PrintScreen; loader._xscale = 0; var listener:Object = new Object(); // copy in progress... listener.onProgress = function(target:MovieClip, loaded:Number, total:Number) { var perc = Math.round((loaded/total)*100) loader._xscale = perc; } // copy is complete, send the result LoadVars to PHP listener.onComplete = function(target:MovieClip, load_var:LoadVars) { trace("done") load_var.filename = new Date().getTime()+".jpg"; load_var.sendAndLoad("http://localhost/timesheet/pixels.php", load_var, "POST"); } saver.onRelease = save; function save() { pn = new PrintScreen(); // initialize the PrintScreen class pn.addListener( listener ); // assign a listener //pn.print(_root, 0, 0, 700,200) // - this works //pn.print(_root, 0, 0, 700,300) // - this works //pn.print(_root, 0, 0, 700,400) // - this work pn.print(_root, 0, 0, 700,500); // NOW FROM THIS SIZE AND GREATER IT DOES NOT SAVE Out the image??????? }
my php file is as follows:
thanks in advance for your help..Code:<?php /** * 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']; $filename = $_POST['filename']; set_time_limit (300); // 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); } } } //// print out the correct header to the browser //header("Content-type:image/jpeg"); // display the image imagejpeg($img, "posters/".$filename); ?>




Reply With Quote