Newsgroup: it.comp.www.php
Titolo: thumbnails

Salve a tutti, vorrei inserire un piccolo album fotografico in un sito ed
invece che scaricarmi qualche gallery creata da terzi, volevo farmelo da
me. 
Il procedimento ho già visto che è semplice, avevo solo un piccolo
dubbio.. 
Dal momento che vorrei che le thumbnails fossero create automaticamente da
uno script (mi scoccia upparle in una cartella a parte dopo averle create
con qualche software) non saprei quale metodo sarebbe meglio utilizzare,
ridurre le dimensioni (ottenute con getimagesize() ) o che altro? 
Non vorrei dire un'assurdità, ma semplicemente riducendo le dimensioni le
dimensioni (in kb) dell'immagine non restano invariate? Dal momento che le
immagini sono delle foto (belle pesanti) almeno nella galleria non vorrei
obbligare chi ha dialup ad aspettare un'ora e un quarto.. 
Vi riporto un paio di righe che ho scritto: 
<?php 
$size = getimagesize("img.jpg"); 
$largh=$size[0]; 
$alt=$size[1]; 
$nuovalargh=$largh / 2; 
$nuovaalt=$alt / 2; 
echo "<br>immagine normale:<br><img src=\"img.jpg\"></img>"; 
echo "<br>immagine dimezzata:<br><img src=\"img.jpg\"
width=\"$nuovalargh\" height=\"$nuovaalt\"></img>"; 
?> 
Lasciando stare la spartanità del codice, come mai risulta che entrambe le
immagini hanno la stessa dimensione? Oltre che alle dimensioni (altezza e
larghezza) devo ovviamente ridurre anche la pesantezza.. 
Ho letto che le thumbnails dovrebbero aggirarsi sui 3-4 max 5 kb.. 
Grazie in anticipo 
Andrea A.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 larghezza) devo ovviamente ridurre anche la pesantezza..
Deduco tu ignori il funzionamento del tag <img>.
Quando imposti le dimensioni, queste sono relative alla visualizzazione, non
al ridimensionamento.
Quindi tu carichi un'immagine GRANDE, ma la fai vedere piccola.
Per fare quello che dici devi usare le librerie grafiche GD e creare proprio
un nuovo file della miniatura.
Ciao
Marco

 con qualche software) non saprei quale metodo sarebbe meglio utilizzare,
io ho riadattato uno script del sito del manuale che ridimensiona una jpg
mantenendone le proporzioni devi solo riadattarlo un pò per quanto riguarda
la dir di salvataggio del thumb e il modo con cui acquisisci le img grandi:
$source="tua_img.jpg";
$size = GetImageSize ($source);        // params of image
// dimensioni thumb con mantenimento proporzioni-----
if ($size[0]>$size[1]) {
 $perc=100/$size[0];
 $sizemin[0]=$size[0]*$perc;
 $sizemin[1]=round($size[1]*$perc);
}
elseif ($size[1]>$size[0] || $size[1]==$size[0]) {
 $perc=100/$size[1];
 $sizemin[0]=round($size[0]*$perc);
 $sizemin[1]=$size[1]*$perc;
}
// ------------------------------------------------------
$im=imagecreatefromjpeg($source);                // path to your gallery
$small = imagecreatetruecolor($sizemin[0], $sizemin[1]);    // new image
ImageCopyResampled($small, $im, 0, 0, 0, 0, $sizemin[0], $sizemin[1],
$size[0], $size[1]);
// below is main function resampling image
ImageDestroy($im);                        // free memory
if (ImageJPEG($small,"tuo_path_thumb/$source",100))                // try to
save image
 {
       echo "File $source has been written<br>\n";            // success
       echo "size: ".$sizemin[0]."x".$sizemin[1] ."<br>\n";
       echo "<br>\n<img src=\"tuo_path_thumb/$source\" alt=\"$source\"
/>\n";
 }
 else
 {
  echo "<font color=red><b>";                    // failed to write file
  echo "Error ! File has not been written.";
  echo "</b></font><br>\n";
 }
stefano

 
[ CUT CODE ]
Ti potrebbe anche essere utile la libreria Image Magik (mi pare si 
scriva così). A me senza di quelle sfalsava tutti i colori delle immagini.
-- 
Andrea Azzini
Arya Interactive Media srl
http://www.inarya.com

 scriva cosě). A me senza di quelle sfalsava tutti i colori delle immagini.
a me non sembra farlo...forse avendolo fatto con foto che hanno molti colori
non me ne sono accorto...
ste

 [CUT]
Perchè scrivere $size[1]>$size[0] || $size[1]==$size[0] invece di
$size[1]>=$size[0] ?
Anche se potresti evitare del tutto il secondo confronto, in quanto tu hai
due valori numerici e nell'if precedente controlli se il primo è maggiore
del secondo, fin qui tutto bene, poi fai questo elseif, probabilmente è
stata solo disattenzione, ma basterebbe solo else in quanto se non è vera la
prima condizione la seconda è palesemente vera.
Cmq il tuo script mi è stato utile in quanto non avevo mai lontanamente
pensato alla possibilità di ridimensionare l'immagine tramite php, infatti
in parecchi siti da me realizzati, uploadavo due file uno con l'immagine
piccola l'altro con l'immagine grande, quando dovevo mostrare molte
immagini, o peggio utilizzavo la stessa immagine ridimensionata con gli
attributi del tag <img> quando ne visualizzavo solo una.
Ciao gigabyte

 $size[1]>=$size[0] ?
Già perchè l'ho fatto? boh? ogni tanto il cervello fà come gli pare :o)
stefano