generare thumbnail

Non riesco proprio a risolvere 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

<?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

<?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)<?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 src="ridimensiona.php?Foto=<?php print ("$riga[Foto]");?>">

</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?

inviato 10 anni fa
alice1
X 0 X

Per capire in quale punto sta l'errore hai provato a chiamare direttamente nell'indirizzo del browser nome_sito/ridimensiona.php?Foto=\fotografie\nome_immagine ?

risposto 10 anni fa
LonelyWolf
X 0 X

Mi appare questo messaggio di errore

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2848 bytes) in /home/mhd-01/www.space2place.org/htdocs/ridimensiona.php on line 41

La linea 41 è questa:

  $img=imagecreatefromjpeg($Foto);

Se invece modifico l'orientamento degli slash

nome_sito/ridimensiona.php?Foto=/fotografie/V_TO_00001.jpg

mi dice

/fotografie/V_TO_00001.jpg NON ESISTE!
risposto 10 anni fa
alice1
X 0 X

Ok, quindi il problema non è nello script ma su come passi i parametri.

Controlla il percorso perche se dice che non esiste probabilmente è sbagliato e non riesce a raggiungerla.

Edit:

oggi stacco alle 14 per cui dopo tale ora non posso più accedere, ciao.

risposto 10 anni fa
LonelyWolf
X 0 X

Ok proverò a ricontrollare con più attenzione....poi ti faccio sapere grazie

risposto 10 anni fa
alice1
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda