- Home
- Categorie
- Coding e Sistemistica
- Coding
- GD Gallery e PHPThumb()
-
Hai verificato che sul server non siano già installate?
Comunque se non hai accesso all'amministrazione del server,sappi che non puoi.
-
No, con aruba non ho accesso all'amministrazione del server.
E non esiste un modo per aggirare le librerie per fare dei thumb da immagini?
-
Usa qualche servizio esterno per la creazione di thumbshots,in alternativa,se hai la possibilità di effettuare connessioni php esterne,fai un include di uno script locato su un altro server sul quale sono installate le librerie GD contenente il codice di creazione delle thumbs.
-
quello che pensavo io è che se pacchetti come joomla e wordpress creano thumb anche senza librerie, ci sarà quindi un modo che scavalchi le librerie..
o penso male?
-
Dopo aver cercato per 3 ore in rete ho trovato un codice che aggira finalmente le libreria, il risultato non sarà superbo ma è un gran passo avanti.
<?php function thumb($foto){ $s_thumbnail = ""; $nome_immagine = "./". $foto; $max_alt = 150; $max_lar = 150; if(!file_exists($nome_immagine)) $s_thumbnail = "<h3>Nessuna immagine!</h3>"; else { $info_immagine = getimagesize($nome_immagine); switch($info_immagine[2]) { case 1: //GIF $thumbnail = @imagecreatefromgif($nome_immagine); break; case 2: //JPG $thumbnail = @imagecreatefromjpeg($nome_immagine); break; case 3: //PNG $thumbnail = @imagecreatefrompng($nome_immagine); break; default: //ALTRO $s_thumbnail = "<h3>Nessuna immagine!</h3>"; break; } } if($thumbnail) { $lar = imagesx($thumbnail); $alt = imagesy($thumbnail); $scala = min($max_lar / $lar, $max_alt / $alt); if($scala < 1) { $new_lar = floor($scala*$lar); $new_alt = floor($scala*$alt); $tmp_thumbnail = imagecreatetruecolor($new_lar, $new_alt); imagecopyresized($tmp_thumbnail, $thumbnail, 0, 0, 0, 0, $new_lar, $new_alt, $lar, $alt); imagedestroy($thumbnail); $thumbnail = $tmp_thumbnail; } header("Content-type: image/jpeg"); imagejpeg($thumbnail); } else echo $s_thumbnail; } thumb("Pre-partita.JPG"); ?>
-
Quello script non aggira le librerie GD,ma si basa su di esse
-
e allora come è possibile che mi funzioni se non ho librerie installate, o almeno credo.
Comunque è un bello scripptino, può tornare utile a tutti
-
Probabilmente ti funziona perchè hai le librerie GD installate
-
ritiro quello che ho detto, c'è un problemone.
Nel momento in cui questo script viene inserito tra i tag
<html><head></head><body></body></html>
non funziona più, stampa il path del file su cui gira lo script.
in più nel codice appaiono una serie di caratteri incompresibili.
Ho provato anche in un host dove ho sicuramente le librerie installate e il risultato non cambia.
Qualche idea?
-
Fatta ancora una modifica.
Stavolta per evitare quell'errore ho fatto in modo che mi salvasse il thumb sul server e così non mi da tutti quei problemi sotto.
Ecco il codice.
<html> <head> </head> <body> <?php function thumb($foto){ $s_thumbnail = ""; $nome_immagine = "./". $foto; $max_alt = 140; $max_lar = 120; if(!file_exists($nome_immagine)) $s_thumbnail = "<h3>Nessuna immagine!</h3>"; else { $info_immagine = getimagesize($nome_immagine); switch($info_immagine[2]) { case 1: //GIF $thumbnail = @imagecreatefromgif($nome_immagine); break; case 2: //JPG $thumbnail = @imagecreatefromjpeg($nome_immagine); break; case 3: //PNG $thumbnail = @imagecreatefrompng($nome_immagine); break; default: //ALTRO $s_thumbnail = "<h3>Nessuna immagine!</h3>"; break; } } if($thumbnail) { $lar = imagesx($thumbnail); $alt = imagesy($thumbnail); $scala = min($max_lar / $lar, $max_alt / $alt); if($scala < 1) { $new_lar = floor($scala*$lar); $new_alt = floor($scala*$alt); $tmp_thumbnail = imagecreatetruecolor($new_lar, $new_alt); imagecopyresized($tmp_thumbnail, $thumbnail, 0, 0, 0, 0, $new_lar, $new_alt, $lar, $alt); $thumbnail = $tmp_thumbnail; } $nomeimage = "th_".$foto ; #creazione preview con GD library $new_width=120; //Larghezza immagine ridimensionata $new_height=90; //Altezza immagine ridimensionata $source_path="./"; //Diretory dove si trova il file di cui volgiamo fare la preview $destination_path="./photo/"; //diretory dove vogliamo salvare l'immagine di preview ImageJPEG($thumbnail,$destination_path.$nomeimage) or die("Problemi nel salvataggio"); } else echo $s_thumbnail; } thumb("Pre-Partita.JPG"); ?> </body> </html>
Non demordo mica