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: Seleziona tutto
<?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: Seleziona tutto
<?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: Seleziona tutto
<?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
se provo a chiamare direttamente nell'indirizzo del browser
- Codice: Seleziona tutto
nome_sito/ridimensiona.php?Foto=\fotografie\nome_immagine
- Codice: Seleziona tutto
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
- Codice: Seleziona tutto
$img=imagecreatefromjpeg($Foto);
Se invece modifico l'orientamento degli slash
- Codice: Seleziona tutto
nome_sito/ridimensiona.php?Foto=/fotografie/V_TO_00001.jpg
mi dice
- Codice: Seleziona tutto
/fotografie/V_TO_00001.jpg NON ESISTE!
Qualcuno può darmi un consiglio?