Home>Guide>Come ritagliare un’immagine con PHP

Come ritagliare un’immagine con PHP


Come ritagliare un'immagine con PHP


Ti è mai capitato di avere un’immagine e di avere la necessità di doverne ritagliare una parte con delle misure stabilite? Utilizzando una libreria PHP e le relative funzioni è possibile farlo senza difficoltà.
Ma scopriamo come, con un semplice esempio.

  • Leggi l'articolo, ti bastano solo 2 minuti, 25 secondi
    Sei di fretta? Scarica il PDF e consultalo quando vuoi!

La libreria GD

GD, attualmente arrivata alla versione 2, è una libreria ideata con lo scopo di manipolare e modificare le immagini.
La prima cosa da fare, è controllare se sul tuo server la libreria è abilitata: crea un file info.php nello spazio FTP del tuo sito, con all’interno una semplice istruzione:

<?php phpinfo(); ?>

dopodiché, accedi alla pagina appena creata tramite browser:

http://{dominio_del_sito}/info.php

otterrai una schermata simile a questa:

In breve, quello che ci si presenta, è il riepilogo della configurazione Apache del server, dei parametri PHP e delle estensioni attive; quello che ci interessa, è la sezione GD, dove è possibile verificare se l’estensione è attiva:

Nel caso in cui non lo sia, hai bisogno di installarla sul server su cui ne hai bisogno (se hai l’abilitazione a farlo) o richiedere all’amministratore del server di farlo.


Ritagliamo un'immagine

Per prima cosa, scegliamo un’immagine da ritagliare:

ed ipotizziamo di volerne ritagliare la scritta “CODE”.
Utilizziamo la funzione imagecreatefrompng( $filename ), che si occupa di istanziare un’immagine a partire da una già esistente, passando come parametro il percorso dell’immagine che vuoi ritagliare:

$sorgente = imagecreatefrompng( 'logo.png' );
$destinazione = imagecreatetruecolor( 270, 90 );

La funzione imagecreatetruecolor( $width, $height ), invece, crea un’immagine vuota delle dimensioni specificate (270×90 nell’esempio).

Il prossimo passaggio, è l’esecuzione del ritaglio:

imagecopy( $destinazione, $sorgente, 0, 0, 80, 120, 270, 90 );

La funzione imagecopy( $dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h ) richiede otto parametri:

  • La destinazione dove salvare il ritaglio, nel nostro caso utilizziamo l’immagine vuota precedentemente generata;
  • L’immagine da ritagliare, nel nostro caso l’istanza dell’immagine da cui siamo partiti;
  • Le coordinate x e y che individuano il punto da cui partirà l’inserimento del ritaglio sull’immagine di destinazione;
  • Le coordinate x e y che individuano il punto da cui far partire il ritaglio dell’immagine sorgente;
  • La grandezza (larghezza e altezza) del ritaglio.

Ora che abbiamo creato la nostra immagine, non ci resta che stamparla a video:

header( 'Content-Type: image/png' );
imagepng( $destinazione );
imagedestroy( $destinazione );
imagedestroy( $sorgente );

ed eliminare dalla memoria le istanze create.
Ecco lo script completo:

<?php

$sorgente = imagecreatefrompng( 'logo.png' );
$destinazione = imagecreatetruecolor( 270, 90 );

imagecopy( $destinazione, $sorgente, 0, 0, 80, 120, 270, 90 );

header( 'Content-Type: image/png' );
imagepng( $destinazione );
imagedestroy( $destinazione );
imagedestroy( $sorgente );

Salvare le immagini

E se anziché stampare a video il risultato volessi salvarlo in un nuovo file .png, è possibile?
Certo che sì! Ti basta eliminare la riga 8 e sostituire la riga 9 con il seguente codice:

imagepng( $destinazione, 'cropped_logo', 0 );

ed il gioco è fatto!
Ecco il risultato finale:

Naturalmente, è possibile modificare le immagini non solo in formato .png come nell’esempio proposto, ma anche in altri formati con le opportune funzioni. Per approfondire l’argomento e le possibilità che la libreria GD2 offre, dai un’occhiata alla documentazione ufficiale:




Ti è piaciuto questo articolo? Regalami un click per ripagarmi dello sforzo



Code4Life ti è stato utile? Sostienici con una donazione!

Dona con PayPal

Hai trovato interessante l’articolo? Allora ti consiglio di leggere:

Come aggiornare gli indici su Magento

Come aggiornare gli indici su Magento


Lo scopo di questa breve guida è comprendere come Magento immagazzina le informazioni ed imparare a ricostruire gli indici in caso di necessità, per avere un catalogo sempre aggiornato.

Come inserire il pulsante "Condividi su WhatsApp" su WordPress

Come inserire il pulsante ‘Condividi su WhatsApp’ su WordPress


Ecco un utile consiglio su come aumentare la diffusione delle pagine e degli articoli del tuo WordPress introducendo il pulsante di condivisione su WhatsApp. Condividere da smartphone non è mai stato così semplice.

Oppure cerca tra gli articoli correlati


E tu cosa ne pensi? Condividi la tua opinione e discutiamone insieme
La tua email non sarà resa pubblico o utilizzata per inviarti spam, te lo prometto

Iscrivimi alla newsletter per ricevere news ed aggiornamenti
Utilizziamo piattaforme di terze parti per l’invio di newsletter. (Privacy Policy)
Tienimi aggiornato su questo articolo
Ricevi una email di notifica quando qualcuno scriverà un commento a questo articolo. (Privacy Policy)
Ricorda i miei dati per la prossima volta che scriverò un commento
Il tuo nome e la tua email verranno salvati in un cookie in questo browser. (Privacy Policy)