Nell'esempio sono caricate 2 immagini da disco e con
imagecopy() applicata una scritta di copyright.
Queste sono "cane.jpg" l'immagine di un cane, che farà da sfondo e l'immagine "copyright.png" che contiene la parola copyright su fondo trasparente ma incorniciato per evidenziare meglio l'esempio.
imagecopy (resource $immagineA, resource $immagineB,
int $destinazioneX , int $destinazioneY,
int $letturaX, int $letturaY,
int $larghezza, int $altezza);
Parametri
$immagineA: Immagine di destinazione considerata nella sua interezza.
$immagineB: Immagine della quale verrà prelevata una parte e sovrapposta all'immagineA
$destinazioneX: Coordinata X del punto di destinazione sull' immagineA
$destinazioneY: Coordinata Y del punto di destinazione sull' immagineA
$letturaX: Coordinata X del punto di origine lettura dall'immagineB
$letturaY: Coordinata Y del punto di origine lettura dall'immagineB
$larghezza: Larghezza della porzione d'immagineB letta dal punto di origine (letturaX , letturaY)
$altezza: Altezza porzione d'immagineB letta dal punto di origine (letturaX , letturaY)
L'esempio seguente copia un'immagine png su un'alta jpg.
L'immagine png contiene, su sfondo trasparente, la scritta copyright.
Facendo uso della funzione
getimagesize(), vengono lette le dimensioni di entrambe le immagini.
La png con la scritta copyright viene copiata sull'immagine cane.jpg centrandola.
Con
imagecopy() l'immagine da sovrapporre deve avere dimensione più contenute della sottostante altrimenti utilizzare
imagecopyresized().
<?php
header('Content-Type: image/jpeg');
$immagineA =
imagecreatefromjpeg('cane.jpg'); // carica l'immagine di fondo
$DimensioniImageA =
getimagesize('cane.jpg');
//$DimensioniImageA[0]; // larghezza
//$DimensioniImageA[1]; // altezza
$immagineB =
imagecreatefrompng( "copyright.png" ); // carica l'immagine da sovrapporre
$DimensioniImageB =
getimagesize("copyright.png");
//$DimensioniImageB[0]; // larghezza
//$DimensioniImageB[1]; // altezza
// calcola distanza dal margine sinistro - 14 dimensioni della cornice del copyright
$destinazione_x_su_immagine_fondo = (($DimensioniImageA[0] - ($DimensioniImageB[0]-14)))/2;
// calcola distanza dal margine superiore - 14 dimensioni della cornice del copyright
$destinazione_y_su_immagine_fondo = (($DimensioniImageA[1] - ($DimensioniImageB[1]-14)))/2 ;
// posizione x,y di partenza per il prelievo dell'immagine da sovrapporre
$punto_x_lettura_da_immagine_sovrapposta = 7;// esclude parte sinistra della cornice
$punto_y_lettura_da_immagine_sovrapposta = 7;// esclude parte superiore della cornice
// dimensione della parte dell'immagine da sovrapporre
$larghezza_prelevata_da_immagine_da_sovrapporre = $DimensioniImageB[0]-14; // esclude parte destra
$altezza_prelevata_da_immagine_da_sovrapporre = $DimensioniImageB[1]-14; // esclude parte inferiore
// esegue la funzione
imagecopy ($immagineA , $immagineB ,
$destinazione_x_su_immagine_fondo ,
$destinazione_y_su_immagine_fondo ,
$punto_x_lettura_da_immagine_sovrapposta ,
$punto_y_lettura_da_immagine_sovrapposta ,
$larghezza_prelevata_da_immagine_da_sovrapporre ,
$altezza_prelevata_da_immagine_da_sovrapporre
);
imagejpeg($immagineA); // al browser
imagejpeg($immagineA, "NomeFile.jpg" ); // salva
// libera memoria
imagedestroy($immagineA); imagedestroy($immagineB);
?>
Risultato: