Tagliare e scalare un'immagine con PHP e ImageMagik

05/10/2006

Per tagliare da un'immagine originale una porzione della stessa potremmo utilizzare un breve script simile al seguente:

<?php
$img = NewMagickWand();
MagickReadImage( $img, 'test.jpg' );
MagickCropImage( $img, 200, 50, 0, 0 );
header( 'Content-Type: image/jpeg' );
MagickEchoImageBlob( $img );
?>
La funzione MagickCropImage() stata introdotta con lo scopo di taglire un'immagine sulla base dei parametr/coordinate indicati.

Nel nostro caso abbiamo deciso di ritagliare da un'immagine originale una porzione della larghezza di 250px per un'altezza di 50. Gli ultimi due parametri numerici "0, 0" indicano l'offset da cui viene operato il taglio, in questo caso l'angolo superiore sinistro.

Nel caso in cui si voglia invece scalare un'immagine sulla base di coordinate stabilite arbitrariamente, potremmo sfuttare un listato simile al seguente:
<?php 
$img = NewMagickWand();
MagickReadImage($img, 'test.jpg');
$img = MagickTransformImage($img,'0x0','100x100');
header( 'Content-Type: image/jpeg' );
MagickEchoImageBlob($img);
?>
La funzione MagickTransformImage() modifica le dimensioni di una risorsa grafica sulla base dei parametri indicati; essa accetta come argomenti la risorsa di MagickWand derivante dall'immagine originale e le nuove dimensioni dell'output in scala.

Da notare come MagickTransformImage() non si limiti a "rimpicciolire" un'immagine, ma cerchi di preservarne proporzioni e definizione.

Attenzione: questo articolo stato concesso in esclusiva per la pubblicazione a Mrwebmaster.it; ne vietata la riproduzione,
anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it.

© Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Stampa :: Torna alla Home