Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378

    [GD/PHP/MYSQL]creare delle thumb con le GD

    salve,stmattina dovevo complicarmi la vita...
    allora mi chiedevo se era possibile prelevare delle immagini da una directory e modificarle al volo tramite php e ho provato questa funzione conle gd, che in partenza sembrava andarmi bene quando non chiedevo di stamparmi l'immagine all'interno di un ciclo,solo che dopo prelevando i dati delle immagini dal database succedeva una cosa strana,vi posto prima il codice:

    codice:
     <?
    
    function CreaThumb($src, $w, $h){
      $size = getimagesize($src);
      if( $size[2] == 2 ){$im = @imagecreatefromjpeg($src);}
      elseif( $size[2] == 1 ){$im = @imagecreatefromgif($src);}
      elseif( $size[2] == 3 ){$im = @imagecreatefrompng($src);}
    
      $newwidth = $size[0];
      $newheight = $size[1];
    
      if( $newwidth > $w ){
        $newheight = ($w / $newwidth) * $newheight;
        $newwidth = $w;
      }
      if( $newheight > $h ){
        $newwidth = ($h / $newheight) * $newwidth;
        $newheight = $h;
      }
    
      if($size[2] != 1){
        $new = imagecreatetruecolor($newwidth, $newheight);
        imagecopyresampled($new, $im, 0, 0, 0, 0, $newwidth, $newheight, $size[0], $size[1]);
      }
      else{
        $new = imagecreate($newwidth, $newheight);
        imagecopyresized($new, $im, 0, 0, 0, 0, $newwidth, $newheight, $size[0], $size[1]);
      }
      header('Content-Type: ' . $size['mime']);
      if( $size[2] == 2 ){@imagejpeg($new, '', 100);}
      elseif( $size[2] == 1 ){@imagegif($new);}
      elseif( $size[2] == 3 ){@imagepng($new);}
      @imagedestroy($im);
      @imagedestroy($new);
    }
    
    
    
    
    
    $query = "SELECT titolo,foto FROM tab_cinema WHERE attivo='0' ORDER BY id DESC LIMIT 5";
       $result = mysql_query($query, $db);
       echo"<div align=\"center\">";
       while ($row = mysql_fetch_array($result)){
    $titolo=stripslashes($row['titolo']);
       $titolo=ucfirst($titolo);
       $foto=stripslashes($row['foto']);
       $var="20%";
       $titolo1=str_replace(" ",$var,$titolo);
       echo"<a href=\"cinema.shtml#$titolo1\" title=\"Guarda la scheda del film:$titolo\">";
       echo"LEGGI</a>";
       $foto="$foto";
    
       CreaThumb($foto, 150, 150);
     
      echo "</a>
    ";
    
      }
      echo "</div>";
    
    ?>
    allora,non capisco il perchè mi stampi l'immagine in formato ascii invece che convertirmela in jpg,invece se diversamente inserisco tutto fuori il while mettendo il nome della foto nella variabile foto mi stampa l'immagine tranquillamente...chi mi da na dritta gentilmente :master:
    grazie anticipato!!

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    ciao,
    devi inserire la funzione per creare l'immagine dentro un file separato (es. tua_pagina.php), per poi richiarlo dentro il ciclo tramite il tag img:
    codice:
    echo '[img]tua_pagina.php?foto='.$foto.'[/img]';


    think simple think ringo

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    ancora non ho provato a fare quello che mihai detto ma mi sono venuti già dei dubbi..
    1)devo inserire anche una variabile che memorizzi la variabile passata in get per poi richiamare la funzione nella stessa pagina?
    2)e se io invece avessi le immagini in un'altra directory come faccio a richiamarle?
    :master:

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    1. se ho capito la domanda si
    2. controlla bene i percorsi
    think simple think ringo

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    ok il primo problema è risolto ,grazie!
    per i percorsi li richiamo sempre tramite get tipo pagina.php?foto=percorso/foto.jpg?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    che domanda stupida,devo dormire di + mi sa gh :maLOL:
    grazie per tutto l'aiuto
    edit:
    ops ho sgarrato nn volevo fare crosspost
    scusate ma non so riuscito neanche a cancellarlo
    ciauz

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.