ciao a tutti, volevo fare in modo che le immagini che carico sul mio sito abbiano il watermark e per farlo ho usato questa funzione che ho trovato nel web:
prima di applicare questa funzione, rinomino anche il file facendo questo:codice:function watermark($immagine) { //indichiamo l'immagine che dovrà essere firmata e //il watermark che utilizzeremo per la firma $img_sorgente = $immagine; $sorgente_wtmk = 'watermark.png'; //ricaviamo il type dell'immagine sorgente e del watermark $img_tipo = @substr($img_sorgente,@strlen($img_sorgente)-4,4); $img_tipo = @strtolower($img_tipo); $wtmk_tipo = @substr($sorgente_wtmk,@strlen($sorgente_wtmk)-4,4); $wtmk_tipo = @strtolower($wtmk_tipo); //richiamiamo diverse funzioni a seconda del tipo di immagine if($img_tipo == ".gif") { $img_result = imagecreatefromgif($img_sorgente); } elseif($img_tipo == ".jpg" || $img_tipo == "jpeg") { $img_result = @imagecreatefromjpeg($img_sorgente); } elseif($img_tipo == ".png") { $img_result = @imagecreatefrompng($img_sorgente); }else{ die("Impossibile rilevare il formato dell'immagine " . $img_sorgente); } if(!$img_result) { die("Impossibile creare l'immagine". $img_sorgente); } //facciamo lo stesso per quanto riguarda il watermark if($wtmk_tipo == ".gif") { $wtmk = @imagecreatefromgif($sorgente_wtmk); } elseif($wtmk_tipo == ".png") { $wtmk = @imagecreatefrompng($sorgente_wtmk); }else{ die("Impossibile rilevare il formato del watermark"); } if(!$wtmk) die("Impossibile creare il watermark"); //stabiliamo le dimensioni dell'output $img_result_width = @imagesx($img_result); $img_result_height = @imagesy($img_result); $wtmk_width = @imagesx($wtmk); $wtmk_height = @imagesy($wtmk); $width = (($img_result_width - $wtmk_width)/2); $height = (($img_result_height - $wtmk_height)/2); //creiamo un immagine che comprenda il sorgente modificato e il suo watermark imagecopy( $img_result, $wtmk, $width, $height, 0, 0, $wtmk_width, $wtmk_height ); $immaginecw = imagejpeg($img_result); return $immaginecw; }
e per spostarla nella cartella che voglio e applicare il watermark faccio cosi:codice:if (is_uploaded_file($_FILES['foto1']['tmp_name'])) { $estensione_foto1 = catch_estensione($_FILES['foto1']['name']); $foto1 = '1'.time() .'.'.$estensione_foto1; } else {$foto1 = '';}
solo che facendo questo mi va in die la funzione dicendomi questo:codice:if (is_uploaded_file($_FILES['foto1']['tmp_name'])) { $fotomod = watermark($_FILES['foto1']['name']); move_uploaded_file( $fotomod, 'foto_annunci/'.$foto1); }
Impossibile creare l'immagine prova.png
dopo vari tentativi ho deciso di aggiungere sulla stampa dell'errore il nome dell'immagine per verificare se questa arrivasse alla funzione, e questa arriva, anche perchè togliendo la funzione watermark tutto il resto è perfetto... mi sposta l'immagine rinominata nella cartella che voglio... evidentemente c'è un errore nella funzione o ho sbagliato io ad applicarla...cosa mi dite?

Rispondi quotando