Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Thumbnail

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    38

    Thumbnail

    Ho da proporre anche questo problema.
    Ho un db mysql con un campo Foto nel quale viene salvato il percorso delle immagini contenute in una cartella dal nome fotografie...ora quello che vorrei è che nella visualizzazione dei risultati delle queryes che l'utente compie sul db l'immagine apparisse ridimensionata e non nelle dimensioni originali (esagerate !!!).
    Leggendo qua e in là ho provato ad applicare un pò di codice...ma niente.
    Vi posto le pagine:
    config.php
    codice:
    <?php
    $db_host="";
    $db_user="";
    $db_password="";
    $db_database="";
    $connessione=mysql_connect($db_host,$db_user,$db_password) or die ("Errore nella connessione al Mysql:" . mysql_error());
    mysql_select_db($db_database,$connessione) or die ("Errore nella selezione del db:" . mysql_error());
    
    $larghezza=200;
    $altezza=200;
    $proporzioni=1;
    $qualità=100;
    $nomefileridimensiona="ridimensiona.php";
    ?>
    ridimensiona.php
    codice:
    <?php
    $db_host="";
    $db_user="";
    $db_password="";
    $db_database="";
    $connessione=mysql_connect($db_host,$db_user,$db_password) or die ("Errore nella connessione al Mysql:" . mysql_error());
    mysql_select_db($db_database,$connessione) or die ("Errore nella selezione del db:" . mysql_error());
    
    require_once("config.php"); 
    define("LARGHEZZA",$larghezza); 
    define("ALTEZZA",$altezza); 
    define("PROPORZIONI",$proporzioni); 
    define("QUALITA",$qualità); 
    
    function ridimensiona($Foto) { 
        $header=array(1=>"gif",2=>"jpeg",3=>"png",4=>"jpg"); 
        // RIDIMENSIONAMENTO DELLA FOTO 
        $dimensioni=getimagesize($Foto); 
        if ($dimensioni[2] == 1) 
            $img=imagecreatefromgif($Foto); 
        if (($dimensioni[2] == 2) || $dimensioni[2] == 4) 
            $img=imagecreatefromjpeg($Foto); 
        elseif ($dimensioni[2] == 3) 
            $img=imagecreatefrompng($Foto); 
        $altezza=(PROPORZIONI) ? ceil($dimensioni[1]/$dimensioni[0]*LARGHEZZA) : ALTEZZA; 
        $im=Imagecreatetruecolor(LARGHEZZA, $altezza); 
        imagecopyresampled($im,$img,0,0, 0,0, LARGHEZZA,$altezza, $dimensioni[0],$dimensioni[1]); 
        header("content-type: image/".$header[$dimensioni[2]]); 
        imagejpeg($im,"",QUALITA); 
        imagedestroy($im); 
    } 
    
    $Foto=isset($_GET['Foto']) ? $_GET['Foto'] : ""; 
    if(file_exists($Foto)) 
        ridimensiona($Foto); 
    else 
        echo "$Foto NON ESISTE!"; 
    ?>
    pagina con query di ricerca (nella quale l'immagine dovrebbe vedersi ridimensionata)
    codice:
    <?php 
    $db_host="";
    $db_user="";
    $db_password="";
    $db_database="";
    $connessione=mysql_connect($db_host,$db_user,$db_password) or die ("Errore nella connessione al Mysql:" . mysql_error());
    mysql_select_db($db_database,$connessione) or die ("Errore nella selezione del db:" . mysql_error());
    
    $query="SELECT Foto FROM fotoaereeverticali WHERE AnnoRipresa LIKE '%$_POST[AnnoRipresa]%''"; 
    
    $risultato=mysql_query($query,$connessione) or die ("Errore nella query:" . mysql_error()); 
    
    while($riga=mysql_fetch_array($risultato))
    {?>
    <tr>
    <td colspan="2">
    [img]ridimensiona.php?Foto=<?php print ([/img]">
    </tr>
    } 
    ?>
    Il risultato che ottengo è la classica iconcina con la x rossa, ma sulle proprietà mi da
    Indirizzo(URL)= nome_sito/ridimensiona.php?Foto=\fotografie\nome_immagine

    Qualcuno può darmi un consiglio?

  2. #2
    Quando stampi una pagina in html in tag img settando la larghezza o solo l'altezza riproporzioni già l'immagine in una misura prefissata e chiaro che se in origine è di 2000 px anche se il sito la mostra a 200 il browser carica sempre 2000px.

    Conviene quindi uno script con librerie gd2 per ridimensionare in php.

    usa questo è un codice un pò vecchio ma dovrebbe andare:

    <?php

    $name="nome immagine";
    list($width, $height) = getimagesize("$name");
    if ($width<=misura di ridimensionamento){
    copy($big, "percorso/".$name) or die ("Impossibile caricare l'immagine sul server");
    }else{
    $img = imagecreatefromjpeg($name);
    $img_width = imagesx($img);
    $img_height = imagesy($img);
    $thumb_width = misura di ridimensionamento;
    $thumb_height = ($img_width != $thumb_width) ? floor($thumb_width * $img_height / $img_width) : $img_height;
    $thumb = imagecreatetruecolor($thumb_width, $thumb_height);
    imagecopyresized($thumb, $img, 0, 0, 0, 0, $thumb_width, $thumb_height, $img_width, $img_height);
    imagejpeg($thumb, "percorso/".$name, 100);
    imagedestroy($img);
    imagedestroy($thumb);

    ?>

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.