Ciao a tutti ho scritto la seguente funzione per l'elaborazione di un file media, in questo momento la funzione permette di ridimensionare l'immagine e di ruotarla di 90 gradi ma quest'ultima operazione viene eseguita una sola volta.
Codice PHP:
//file percorso completo del file
//newheight nuova altezza
//newwidth nuova lunghezza
//nomeFile nuovo nome per il salvataggio delle miniature
//gradiSx gradi di rotazione
function elaborateMedia($file,$newheight,$newwidth,$nomeFile,$gradiSx) {
if(isset($nomeFile)){
$dest = "../tmp/".$nomeFile.".jpg"; // directory di salvataggio delle miniature create
}
$thumbComp = 100;
list($width, $height) = getimagesize($file);
if(isset($gradiSx)){
if($gradiSx==""){
}else{
$destRuota = "../tmp/temp.jpg";
// apertura dell'immagine originale
$srcFile = imagecreatefromjpeg($file) or die ("Impossibile aprire l'immagine originale");
//Ruto l'immagine di 90 gradi
$ruotaImage = imagerotate($srcFile, $gradiSx,0) or die("Impossibile ruotare di $gradiSx il file $file");
imagejpeg($ruotaImage, $destRuota, $thumbComp) or die("Impossibile salvare la modifica");
}
}
if($newwidth != $width && $newheight != $height){
echo"Nome del nuovo file: $nomeFile";
// creazione dell'immagine della miniatura
$thumb = imagecreate($newheight, $newwidth) or die("Impossibile creare la miniatura");
// apertura dell'immagine originale
$src = imagecreatefromjpeg($file) or die ("Impossibile aprire l'immagine originale");
// copio l'immagine originale in quella della miniatura ridimensionandola
imagecopyresized($thumb, $src, 0, 0, 0, 0, $newheight, $newwidth , $height, $width) or die("Impossibile ridimensionare l'immagine");
// salvataggio miniatura
imagejpeg($thumb, $dest, $thumbComp) or die("Impossibile salvare la miniatura");
}else{
echo"Non ci sono elaborazione da attuare";
}
}
La funzione di rotazione viene eseguita al onclick di un'immagine e il file in cui viene richiamata l'elaborazione dell'immagine è il seguente:
Codice PHP:
$x = $_SESSION['x']; // altezza dell'immagine
$y = $_SESSION['y']; // lunghezza dell'immagine
$image = $_SESSION['file']; // immagine da modificare
$preview = "http://www.decadeweb.it/dw-admin/uploads/$image";
$action = $_SESSION['action'];
$nomeThumb = $_SESSION['nomeThumb'];
$gradiSx = $_SESSION['gradiSx'];
if(isset($action)){
elaborateMedia($preview,$x,$y,$nomeThumb,$gradiSx);
}else{
echo"Errore nella creazione";
}
Como posso far eseguire l'elaborazione della rotazione a ogni click senza che venga eseguita l'elaborazione una sola volta?
Immagino che avrei bisogno di un ciclo ma non ho idea su cosa posso essere il controllo del ciclo...
Grazie a tutti