Newsgroup: it.comp.www.php
Titolo: [@SCRIPT] : Creazione thumbnails

io la posto ... se serve a qualcuno è qui!
ho trovato altra roba in giro ma non era quello che volevo: non mi interessa
una galleria di immagini automatica o un CGI che mi "zippi" le foto ...
avevo bisogno solo di un programmino che mi rimpicciolisse e riducesse in
peso le immagini che gli passavo ...
... quindi me lo sono fatto (è MOLTO semplice e grazie a chiunque lo vorrà
modificare/correggere/sistemare/...) e visto che magari serve lo posto!
ciao a tutti!!
PS: io ho provato tutto su Apache/PHP 4 (Win) e funzia ....
----------------------------------------------------------------------------
--------------------
                                            YBY.ZONE INTERACTIVE
 
http://www.cisonostato.it
----------------------------------------------------------------------------
--------------------
       //**   SCRIPT PER LA REALIZZAZIONE DINAMICA DI THUMBNAILS   **//
<?
//** FUNZIONE **//
function thumb($src)
         {
          $src = ImageCreateFromJPEG($src);
          $org_h = imagesy($src);
          $org_w = imagesx($src);
          if($org_h > $org_w )
              {
               $cfg[height] = 120;  /* variabile a piacere*/
               $cfg[width]  = floor($cfg[height] * $org_w / $org_h );
               $cfg[dstX]   = 60 - ($cfg[width] * 0.5);
               $cfg[dstY]   = 0;
              }
          else
              {
               $cfg[width]  = 120; /* variabile a piacere*/
               $cfg[height] = floor($cfg[width] * $org_h / $org_w );
               $cfg[dstX]   = 0;
               $cfg[dstY]   = 0;
              }
          $dest = ImageCreate($cfg[width], $cfg[height]);
          ImageCopyResized($dest, $src, $cfg[dstX], $cfg[dstY], 0, 0,
$cfg[width], $cfg[height], $org_w, $org_h );
          ImageJPEG($dest,"cache\\pippo.jpg",90); /* path per il salvataggio
del file creato*/
          ImageDestroy($src);
          echo "<IMG src=\"cache\\pippo.jpg\">"; /* codice HTML per
visualizzare l'immagine */
         }
//** SCRIPT **//
$img="images/nome.jpg"; /* path per l'immagine che si vuole ridurre */
$pippo=thumb($img);
?>
----------------------------------------------------------------------------
--------------------
Ho voluto che la grandezza fosse variabile a seconda della forma
dell'immagine quindi il lato
più lungo assume sempre valore 120 px e l'altro si riduce di conseguenza.
Ovviamente tutti i parametri sono configurabili a piacere! :þ
----------------------------------------------------------------------------
--------------------
--
        ----- Manu -----
http://www.cisonostato.it

 $cfg[width], $cfg[height], $org_w, $org_h );
[cut]
SOLO se hai la versione 4.0.6 del PHP, io sostituirei la chiamata di
ImageCopyResized()
con la chiamata ImageCopyResampled(), funzione nuova nuova... ;-)
dal manuale delle giovani marmot... ehm... PHP:
/*---------------------------------------------------------*"
"int imagecopyresampled (resource dst_im, resource src_im, int dstX, int
dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)
"ImageCopyResampled() copies a rectangular portion of one image to another
image, smoothly interpolating pixel values so that, in particular, reducing
the size of an image still retains a great deal of clarity. Dst_im is the
destination image, src_im is the source image identifier. If the source and
destination coordinates and width and heights differ, appropriate stretching
or shrinking of the image fragment will be performed. The coordinates refer
to the upper left corner. This function can be used to copy regions within
the same image (if dst_im is the same as src_im) but if the regions overlap
the results will be unpredictable. "
"Note: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later"
/*---------------------------------------------------------*"
quindi controlla prima!! :-)
--
<+#DarKStaR#+>