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

    resize immagine in base alla larghezza

    ciao, vedendo la pillola http://forum.html.it/forum/showthrea...&highlight=gd2

    l'ho trovata interessantissima, cercando di adattarla a un mio caso, mi sono imbattuto nel seguente errore:
    non riesco a proporzionare l'img in base alla larghezza.
    il mio caso è questo: l'utente seleziona l'img e il codice dovrebb creare una thumb di larghezza max 120px e una img di 400px di larghezza.
    la pillola parla solo di altezza allora ho provato a modificarla così ( ho modificato solo questa funz):
    codice:
    function SaveProportionateImage($filename, $quality, $width){ 
    		
            $dest_width = $width; 
            $ratio = $this->src_width / $dest_width; 
    
            $dest_image = imagecreatetruecolor( $this->src_height / $ratio,$dest_width); 
    
    
            imagecopyresampled($dest_image, $this->src_image, 0, 0, 0, 0, 
    
                $this->src_width / $ratio, 
    
                $this->src_height / $ratio, 
    
                $this->src_width, 
    
                $this->src_height); 
    
            
    		imagejpeg($dest_image, $filename, $quality); 
    
            imagedestroy($dest_image); 
    
        }
    solo che non funziona xche crea questo:
    foto modificata
    mentre il file sorgente è questo:
    file sorgente
    dove è che sbaglio?

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    prova a vedere se questo ti aiuta..

    codice:
          if($width_orig>$height_orig) { // FOTO ORIZZONTALE
            $xg=$Xmax;
            $yg=($Xmax/$width_orig)*$height_orig;
            $xt=$x;
            $yt=floatval(($x/$width_orig)*$height_orig);
          } else {
            $xg=($Ymax/$height_orig)*$width_orig;                    // FOTO VERTICALE
            $yg=$Ymax;
            $xt=floatval(($y/$height_orig)*$width_orig);
            $yt=$y;
          }
    in pratica $width_orig e $height_orig li prendo con getimagesize dall'originale.

    Dopo di che se la foto è orizzontale setto xg (per la foto ridimensionata grande) e xt (per la thumbnail) al valore massimo da me settato, e ottengo y facendo una semplice proporzione matematica, viceversa per la foto verticale.

    Scusa se non ho guardato direttamente il codice, ma anche se banale come soluzione, ci avevo sclerato sopra e riaffrontarlo mi crea la nausea...


  3. #3
    come prima, mi fa sempre la banda nera sotto e l'img è di 400px alta e 300 larga. COme mai??????

  4. #4
    questa è la funz modificata:
    codice:
    function SaveProportionateImage($filename, $quality, $width){ 
    		
            $dest_width = $width; 
            $ratio = $this->src_width / $dest_width; 
    
            $dest_image = imagecreatetruecolor( $this->src_height / $ratio,$dest_width); 
    		if($this->src_width>$this->src_height) { // FOTO ORIZZONTALE
            	$xg=$width;
            	$yg=($width/$this->src_width)*$this->src_height;
         	} 
         	/*else {
    	        $xg=($Ymax/$height_orig)*$width_orig;                    // FOTO VERTICALE
    	        $yg=$Ymax;
    	        $xt=floatval(($y/$height_orig)*$width_orig);
    	        $yt=$y;
            }*/
    
            imagecopyresampled($dest_image, $this->src_image, 0, 0, 0, 0, 
    
                $xg, 
    
                $yg, 
    
                $this->src_width, 
    
                $this->src_height); 
    
            
    		imagejpeg($dest_image, $filename, $quality); 
    
            imagedestroy($dest_image); 
      
        }
    la funzione SaveProportionateImage la richiamo sia per la thumb che per la large

  5. #5
    scusate sono a zero con php...una volta che ho la funzione per il resize, in che file la devo salvare?? e come la richiamo per generare le thumbs??
    please aiutatemi è urgente
    Vuoi condividere le tue Video, Foto e Musica con tutti i tuoi amici?
    http://www.manyego.com
    Entra a far parte della nostra Community!
    Ti aspettano migliaia di Video e Foto e centinaia di Amici!
    Crea il tuo Blog e personalizzalo con alcuni semplici passi!

  6. #6
    nessuno che mi possa aiutare??
    Vuoi condividere le tue Video, Foto e Musica con tutti i tuoi amici?
    http://www.manyego.com
    Entra a far parte della nostra Community!
    Ti aspettano migliaia di Video e Foto e centinaia di Amici!
    Crea il tuo Blog e personalizzalo con alcuni semplici passi!

  7. #7
    Utente di HTML.it L'avatar di dany0
    Registrato dal
    Feb 2003
    Messaggi
    422
    file dove compare la foto :

    echo"<img border=0 src=\"resize.php?file=".$nomefile."&altezza=".$rig aopzioni[altezzafoto_fotogallery]."&larghezza=".$rigaopzioni[larghezzafoto_fotogallery]."\">";

    file resize.php

    $file=$_GET[file];

    $hsize =$_GET['altezza'];
    $wsize =$_GET['larghezza'];


    $im_size = GetImageSize($file);
    $imageWidth = $im_size[0];
    $imageHeight = $im_size[1];
    $thumb_width = $wsize;
    $thumb_height = $hsize;
    $im2 = ImageCreateFromJPEG($file);

    if ($imageWidth>=$imageHeight) {
    $width = $thumb_width;
    $height = ($width/$imageWidth)*$imageHeight;
    } else {
    $height = $thumb_height;
    $width = ($height/$imageHeight)*$imageWidth;
    }
    $im = imageCreateTrueColor($width, $height);

    if (function_exists('ImageCopyResampled')) {
    ImageCopyResampled($im,$im2, 0, 0, 0, 0, $width, $height, $imageWidth, $imageHeight);
    } else {
    ImageCopyResized($im,$im2, 0, 0, 0, 0, $width, $height, $imageWidth, $imageHeight);
    }

    Header("Content-type: image/jpg");
    Imagejpeg($im, '', 85); //85 è la qualità (da 1 a 100)
    ImageDestroy($im);
    ImageDestroy($im2);

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.