Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    53

    Funzione fncreathumbnail

    Salve sto provando ad usare questa funzione per fare in modo che il ridimensionamento delle immagini caricate sul mio sito sia PROPORZIONALE.
    Codice PHP:
    <?
    function fnCreaThumbnail($sOrigine$sDestinazione$sMaxWidth=0$sMaxHeight=0

        
    /* 
         * Verifica l'esistenza dell'immagine d'origine e, se presente, ne determina 
         * la tipologia 
         */ 

        
    $sImgInfo = @getimagesize($sOrigine); 
        switch(
    $sImgInfo[2]) 
        { 
            case 
    1$sType IMG_GIF; break; 
            case 
    2$sType IMG_JPG; break; 
            case 
    3$sType IMG_PNG; break; 
            case 
    4$sType IMG_WBMP; break; 
            default: return 
    $sOrigine; break; 
        } 

        switch(
    $sType
        { 
            case 
    IMG_GIF
                if (!
    function_exists('imagecreatefromgif')) return $sOrigine
                
    $srcImage = @imagecreatefromgif($sOrigine); 
                break; 
            case 
    IMG_JPG
                if (!
    function_exists('imagecreatefromjpeg')) return $sOrigine
                
    $srcImage = @imagecreatefromjpeg($sOrigine); 
                break; 
            case 
    IMG_PNG
                if (!
    function_exists('imagecreatefrompng')) return $sOrigine
                
    $srcImage = @imagecreatefrompng($sOrigine); 
                break; 
            case 
    IMG_WBMP
                if (!
    function_exists('imagecreatefromwbmp')) return $sOrigine
                
    $srcImage = @imagecreatefromwbmp($sOrigine); 
                break; 
            default: return 
    $sOrigine
        } 

        if(
    $srcImage
        { 
            
    /* Recupera la dimensione in pixel dell'immagine d'origine */ 
            
    $srcWidth $sImgInfo[0]; 
            
    $srcHeight $sImgInfo[1]; 
             
             
            
    /* 
             * E imposta a zero quelle di destinazione o alla dimensione della 
             * sorgente se non è limitata 
             */ 
            
    $sNewWidth = ($sMaxWidth == $srcWidth 0); 
            
    $sNewHeight = ($sMaxHeight == $srcHeight 0); 

            
    /* Calcola il rapporto di proporzione */ 
            
    $sPropW $sNewWidth $srcWidth
            
    $sPropH $sNewHeight $srcHeight
             
            
    /* 
             * Quindi procede al controllo per determinare se una (o entrambe) le 
             * dimensioni eccedono quelle massime relative. 
             * Se una sola eccede quella massima relativa questa verrà massimizzata 
             * nonché, l'altra dimensione, ricalcolata onde mantenere le proporzioni 
             * corrette. 
             * Se entrambe le dimensioni eccedono i loro massimi, viene determinato 
             * quale tra le due è la maggiore e viene ricalcolata l'altra. 
             */ 
            
    if ($sPropW && $sPropW <= $sPropH
            { 
                
    /* 
                 * Vi è limite alla larghezza massima, l'immagine d'origine eccede 
                 * tale limite e quest'ultima è anche la dimensione più grande (o 
                 * eguale) tra larghezza ed altezza. 
                 */ 
                
    $sNewWidth $sMaxWidth
            } 

            if (
    $sPropH && $sPropH <= $sPropW
            { 
                
    /* 
                 * Vi è limite all'altezza massima, l'immagine d'origine eccede 
                 * tale limite e quest'ultima è anche la dimensione più grande (o 
                 * eguale) tra larghezza ed altezza. 
                 */ 
                
    $sNewHeight $sMaxHeight
            } 
             
            
    /* 
             * A questo punto, se una delle due nuove dimensioni è ancora pari a 
             * zero, significa che quest'ultima deve essere ricalcolata in base 
             * alla sua antagonista per poter rispettare le proporzioni. 
             */ 
            
    if ($sNewWidth && $sNewHeight == 0
            { 
                
    /* Ricalcola l'altezza */ 
                
    $sRatioWidth $srcWidth $sNewWidth
                
    $sNewHeight $srcHeight $sRatioWidth
            } 

            if (
    $sNewHeight && $sNewWidth == 0
            { 
                
    /* Ricalcola la larghezza */ 
                
    $sRatioHeight $srcHeight $sNewHeight
                
    $sNewWidth $srcWidth $sRatioHeight
            } 
             
            if (
    $sNewWidth == && $sNewHeight == 0
            { 
                
    $sNewWidth $srcWidth
                
    $sNewHeight $srcHeight
            } 
             
            
    /* Procede quindi alla creazione effettiva della thumbnail */ 
            
    if (!function_exists("imagecreatetruecolor")) 
                
    $sDestImage = @imagecreate($sNewWidth$sNewHeight); 
            else 
                
    $sDestImage = @imagecreatetruecolor($sNewWidth$sNewHeight); 
             
            
    imagecopyresized($sDestImage$srcImage0000$sNewWidth$sNewHeight$srcWidth$srcHeight); 

            switch(
    $sType
            { 
                case 
    IMG_GIF: @imagegif($sDestImage$sDestinazione); break; 
                case 
    IMG_JPG: @imagejpeg($sDestImage$sDestinazione); break; 
                case 
    IMG_PNG: @imagepng($sDestImage$sDestinazione); break; 
                case 
    IMG_WBMP: @imagewbmp($sDestImage$sDestinazione); break; 
            } 

            
    /* Libera la memoria */ 
            
    @imagedestroy($srcImage); 
            @
    imagedestroy($sDestImage); 

            return 
    $sDestinazione
        } 
        else 
        { 
            return 
    $sOrigine
        } 

    ?>

    la pagina upload_categoria.php conmtiene il seguente codice attraverso il quale richiamo la funzione impostata nel file gd.php
    Codice PHP:
    <? 
                        
                        
    if ((isset($_POST["act"])) AND ($_POST["act"] == "upload") ){ 
                            if(isset(
    $_FILES["file"]["size"])){
                                
    $id $_POST["id"];
                                
    $file =$_FILES["file"]["name"];
                                
    $arr_ext = array("gif","jpg","jpeg");
                                list(
    $ok_upload,$end_result,$file_name) = uploadFile("../public/servizi/".$id."/foto/",$_FILES["file"],$arr_ext);    
                                if(
    $ok_upload){
    include(
    "../include/gd.php");
    $origine "../public/servizi/".$id."/foto/".$file// percorso al file dell'immagine 
                                    
    $destinazione "../public/servizi/".$id."/thumb/".$file// directory di salvataggio delle miniature create 
                                    /* Dimensione finale massima:  */ 
                                    
    $thumb fnCreaThumbnail($origine$destinazione200,200); 
                                    echo 
    "<script>self.location.href='servizi_foto.php?id=".$id."';</script>";
                                    
    stampa_msg();
                                    }
                                    }
                                    }
    ?>
    Il problem rigurada la creazione dell'immagine proporzionata in pratica il resize procede ma le dimensioni proporzionate non le ottengo . dove Sbaglio?

  2. #2
    Guarda prova a togliere i vari @ e prova a dare un occhiata al log di apache per vedere se c'è un warning/errore, sarà l'ora ma ora come ora non vedo errori io..
    Cristian Giustini
    Web developer

    G&T Services (sito ripristinato)
    Per qualsiasi info/collaborazione contattatemi al seguente indirizzo:
    cristian.giustini@gtservices-online.com

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    53
    niente da fare l'immagine viene ridimensionata ma fissa le dimensioni della thumba 200x200 mentre quello che dovrebbe fare è di impostare a seconda della dimensine dell'immagine o 200 px in altezza max o 200 px in larghezza max. Boh

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    53
    scusate se insisto ma io non riescoa capire il perchè non fa quello che dovrebbe...up up

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    53
    nessun suggerimento?

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.