Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822

    [GD] salvare un immagine sul server

    ciao a tutti, sto usando la classe di flash di sephiroth (http://www.sephiroth.it/tutorials/fl...en/page002.php)
    per catturare un'immagine jpg da flash con l'ausilio delle librerie gd di php.
    tralasciando la parte in flash alla fine di tutti i processi la pagina php visualizza l'immaigne in una nuova finestra.
    questo è lo script:
    Codice 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($img000xFFFFFF);

    $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($hex02));
                
    $g hexdec(substr($hex22));
                
    $b hexdec(substr($hex42));
                
    // 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""90); 
    io avrei bisogno di salvare l'immagine creata sul server e non di visualizzarla.
    come posso fare?
    grazie a tutti dell'aiuto come sempre.

  2. #2
    per salvare l'immagine commenta la riga:
    header("Content-type:image/jpeg");
    e sostituisci
    imagejpeg($img, "", 90);
    con
    imagejpeg($img, "nome.jpg", 90);
    Dolcissima è la vita nella totale assenza di senno.

  3. #3
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    perfetto mi salva l'immagine sul server...
    ma mi apre sempre una pagina in _blank vuota.

    non riesco a capire dove sia questo comando. se nel file php o in flash.

  4. #4
    la pagina vuota non è altro che lo script php che salva l'immagine sul server, per ovviare al problema puoi creare un redirect mettendo alla fine della pagina:
    header("Location: http://www.sito.it/pagina.html");
    Dolcissima è la vita nella totale assenza di senno.

  5. #5
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    mmm il sito è completamente in flash... e deve rimanere dov'è.
    per intenderci. io con questa classe faccio uno screenshot salvo l'immagine ... ma non si deve aprire sta benedetta pagina vuota sopra tutto! l' "errore" sta nelle funzioni che richiamano la classe in flash. il fatto è che e possibilisissimo comunicare con pagine php da flash senza che queste ultime si vedano.
    anche se sono nella sezione php posto qui l'actionscript sperando di risolvere, al massimo chiedo ai mod di spostarmi nella sezione dedicata.

    questo è lo script che comunica con php da flash:
    codice:
    import it.sephiroth.mloaderWindow
    import it.sephiroth.PrintScreen
    
    
    var loader:mloaderWindow = this.createClassObject(mloaderWindow, "loader", 10, {_x:-1000, _y:-1000})
    loader.setStyle("borderColor", 0x006699)
    
    // listener which receives the broadcast message
    // from the PrintScreen class
    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.label = "computing... " + perc + "%"
    	loader.value = perc
    }
    // copy is complete, send the result LoadVars to PHP
    listener.onComplete = function(target:MovieClip, load_var:LoadVars){
    	loader.label = "sending to php..."
    	load_var.send("files/pixels.php", "POST") // ---- > QUESTA E' L'ISTRUZIONE CHE INVIA LE VARIABILI ALLA PAGINA PHP !!!
    	loader.close()
    }
    
    /**
     * Print Button has been clicked
     */
    function print_me(){
    	pn = new PrintScreen();	// initialize the PrintScreen class
    	pn.addListener( listener );	// assign a listener
    	pn.print(this,0,0,485,165)	// copy the _root
    	loader.label = "computing... 0%"
    	loader.open(true, true, true);	// open a loader
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.