Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    librerie gd. mostra solo una immagine.

    avrei bisogno del vostro aiuto. stavo provando lo script di questa guida per creare le immagini quadrate. a funzionare funziona perche' l'immagine quadrata viene creata ma non riesco a capire perche' se provo con più di una immagine mi mostra sempre solo la prima.
    questo e' tutto il mio file, non c'è codice html. grazie per l'attenzione.

    http://php.html.it/articoli/leggi/93...i-gd-in-php/3/

    Codice PHP:
    <?php
    $immagine 
    'foto1.jpg';
    $immagine2 'foto2.jpg';
    $immagine3 'foto3.jpg';

    function 
    GDVersion(){
      if( !
    in_array('gd'get_loaded_extensions()) ) return 0;
      elseif( 
    isGD2supported() ) return 2;
      else return 
    1;
    }
    function 
    isGD2supported(){
      global 
    $GD2;
      if( isset(
    $GD2) AND $GD2 ) return $GD2;
      else{
        
    $php_ver_arr explode('.'phpversion());
        
    $php_ver intval($php_ver_arr[0])*100+intval($php_ver_arr[1]);

        if( 
    $php_ver 402 ){ // PHP <= 4.1.x
          
    $GD2 in_array('imagegd2',get_extension_funcs("gd"));
        }
        elseif( 
    $php_ver 403 ){ // PHP = 4.2.x
          
    $im = @imagecreatetruecolor(1010);
          if( 
    $im ){
            
    $GD2 1;
            @
    imagedestroy($im);
          }
          else 
    $GD2 0;
        }
        else{ 
    // PHP = 4.3.x
          
    $GD2 function_exists('imagecreatetruecolor');
        }
      }

      return 
    $GD2;
    }

    function 
    OutThumb($src$l){
      
    $size getimagesize($src);
      if( 
    $size[2] == ){$im = @imagecreatefromjpeg($src);}
      elseif( 
    $size[2] == ){$im = @imagecreatefromgif($src);}
      elseif( 
    $size[2] == ){$im = @imagecreatefrompng($src);}
      if( 
    $size[0]>$l or $size[1]>$l ){
        
    $centerX $size[0]/2;
        
    $centerY $size[1]/2;
        if( 
    $size[0] > $size[1] ){
          
    $luy 0;
          
    $lux $centerX-$centerY;
          
    $rdy $size[1];
          
    $rdx $size[1];
        }
        else{
          
    $lux 0;
          
    $luy $centerY-$centerX;
          
    $rdx $size[0];
          
    $rdy $size[0];
        }

        if( (
    GDVersion() == 2) AND ($size[2] != 1) ){
          
    $new imagecreatetruecolor($l$l);
          
    imagecopyresampled($new$im00$lux$luy$l$l$rdx$rdy);
        }
        else{
          
    $new imagecreate($l$l);
          
    imagecopyresized($new$im00$lux$luy$l$l$rdx$rdy);
        }
      }
      else{
        
    $new &= $im;
      }
      
    header('Content-Type: ' $size['mime']);
      if( 
    $size[2] == ){@imagejpeg($new$fileOut100);}
      elseif( 
    $size[2] == ){@imagegif($new$fileOut);}
      elseif( 
    $size[2] == ){@imagepng($new$fileOut);}
      @
    imagedestroy($im);
      @
    imagedestroy($new);
    }

    $a OutThumb($immagine50);
    $b OutThumb($immagine250);
    $c OutThumb($immagine350);

    echo 
    $a;
    echo 
    $b;
    echo 
    $c;
    ?>

  2. #2
    lo so che il codice e' lungo ma le funzioni in se non hanno problemi. sicuramente sbaglio io quando faccio l'echo. ho anche provato a mettere le foto in un array, a usare ob_start ma niente. Me ne mostra sempre una. come si fa a scorrerle tutte?

  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da andrea_kobe
    lo so che il codice e' lungo ma le funzioni in se non hanno problemi. sicuramente sbaglio io quando faccio l'echo. ho anche provato a mettere le foto in un array, a usare ob_start ma niente. Me ne mostra sempre una. come si fa a scorrerle tutte?
    Il punto è che con quell'header dici che il documento è l'immagine, e non un documento html che contiene 3 immagini...

    quindi per come è fatta quella funzione non puoi mostrare 3 immagini contemporaneamente...

  4. #4
    grazie per la risposta.
    quindi bisogna che cerchi un altro script che mi crei le immagini quadrate per una galleria di foto.

    sto provando a cambiare l'header di questo script con
    header('Content-Type: text/html');
    ma non cambia niente.
    A me servirebbe proprio un codice che faccia questo lavoro su tutte le immagini, prendendo la parte centrale.
    Se non si può adattare questo, qualcuno mi saprebbe dare il link di uno script che faccia lo stesso lavoro?

  5. #5

  6. #6
    uppino.

  7. #7

  8. #8
    per favore, se funziona con un'immagine immagino possa funzionare anche per le altre con qualche modifica. nessuno che mi può dire come?

  9. #9
    non puoi mandare in output 3 immagini alla volta, se ti servono 3 immagini devi richiamare lo script 3 volte

  10. #10
    ciao bubu77, scusa l'ignoranza ma non ho capito.

    Facendo così non lo richiamo 3 volte?
    $a = OutThumb($immagine, 50);
    $b = OutThumb($immagine2, 50);
    $c = OutThumb($immagine3, 50);

    Le gallerie d'immagini come fanno a mostrarle tutte insieme?
    Perdonami se faccio domande stupide per te.

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.