Home » Web Development » Php » Come ritagliare un’immagine con php usando imagecopy

Come ritagliare un’immagine con php usando imagecopy

codice-php

Può capitare a volte di dover ritagliare una porzione di un’immagine per poterla utilizzare in diversi modi. Ne è un esempio la piccola anteprima che vediamo accanto al nome di un profilo sulle nostre bacheche di Facebook.
Php insieme alla libreria GD2 ci permette di farlo senza grosse difficoltà grazie a imagecopy, vediamolo con un pratico esempio.

Scegliamo un’immagine che vogliamo ritagliare, come ad esempio:

tutorial-Wordpress

Decidiamo di voler ritagliare la scritta “tutorial”, quindi cominciamo a vedere il codice:

1
2
$src = imagecreatefrompng('images/imgProva.png');
$dest = imagecreatetruecolor(100, 20);

Istanziamo l’immagine che vogliamo ritagliare, con il path della nostra immagine e istanziamo un’altra immagine con le misure del nostro ritaglio.

Nell’esempio possiamo notare che è stata utilizzata la funzione imagecreatefrompng che serve per istanziare un immagine partendo da una png. Se avessimo voluto utilizzare, per esempio, una gif avremmo dovuto usare imagecreatefromgif e così via. Per tutte le altre tipologie di immagini potete trovare la funzione adeguata sulla documentazione ufficiale della GD2.

Ora che abbiamo istanziato le variabili che ci servono possiamo eseguire il ritaglio:

4
imagecopy($dest, $src, 0, 0, 300, 155, 100, 20);

imagecopy richiede il passaggio di alcuni parametri:

  • La destinazione dove salvare il ritalgio ($dest)
  • L’immagine da ritagliare ($src)
  • Le coordinate x e y di dove andare a inserire il ritaglio sull’immagine di destinazione (0, 0)
  • Le coordinate x e y da cui far cominciare il ritaglio (300, 155)
  • La grandezza del ritaglio

Ora che abbiamo ritagliato la nostra immagine non ci resta che stamparla a schermo:

5
6
7
8
header('Content-Type: image/png');
imagepng($dest);
imagedestroy($dest);
imagedestroy($src);

Con la funzione header andremo a definire l’header della nostra pagina, serve più che altro se utilizziamo questo script di prova in una pagina php senza alcuna struttura.

imagpng invece va a stampare a schermo il nostro ritaglio, anche in questo caso dovremo utilizzare funzioni diverse in base all’estensione della nostra immagine.

Infine, con imagedestroy, eliminiamo dalla memoria le due immagini che abbiamo istanziato in modo da mantenere alte le prestazione delle nostre applicazioni.

Negli ultimi giorni mi sto interessando molto alla GD2 e alla possibilità di manipolare le immagini con Php. Prossimamente parleremo di come ricavare il colore di un determinato pixel da un’immagine date le coordinate.

Resta sempre aggiornato

Stai tranquillo! Non invio E-mail di Spam e non faccio decine di invi ogni settimana. Ti invierò di tanto in tanto un messaggio per tenerti aggiornato sulle novità e sui nuovi articoli!
Email
Secure and Spam free...