Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    problemi con upload di immagini e watermark

    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:

    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;
    }
    prima di applicare questa funzione, rinomino anche il file facendo questo:


    codice:
    if (is_uploaded_file($_FILES['foto1']['tmp_name'])) {	$estensione_foto1 = catch_estensione($_FILES['foto1']['name']); $foto1 = '1'.time() .'.'.$estensione_foto1; } else {$foto1 = '';}
    e per spostarla nella cartella che voglio e applicare il watermark faccio cosi:

    codice:
    if (is_uploaded_file($_FILES['foto1']['tmp_name'])) { $fotomod = watermark($_FILES['foto1']['name']);	move_uploaded_file( $fotomod, 'foto_annunci/'.$foto1); }
    solo che facendo questo mi va in die la funzione dicendomi questo:

    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?

  2. #2
    nessuno ne sa niente?

  3. #3
    prova così... ma dovrei leggerlo meglio il codice... e cmq dovresti fase dei controlli + "approfonditi" soprattutto con file_exists()

    Codice PHP:
    $fotomod watermark($_FILES['foto1']['tmp_name']); 

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 © 2025 vBulletin Solutions, Inc. All rights reserved.