Copia e unisce una parte dell'immagine con una percentuale di opacità stabilita dal programmatore.
Il parametro percentuale specifica la quantità di opacità dove 0=massima trasparenza e 100=massima opacità. Se il valore è 100% si comporta come la funzione
imagecopy().
imagecopymerge( resource $immagineA, resource $immagineB,
int $destinazioneX, int $destinazioneY,
int $letturaX, int $letturaY,
int $larghezza, int $altezza,
int $percentuale)
Parametri
$immagineA: Immagine di destinazione.
$immagineB: Immagine della quale verrà prelevata una parte e sovrapposta $ImmagineA
$destinazioneX: coordinata X del punto di destinazione su $ImmagineA
$destinazioneY: coordinata Y del punto di destinazione su $ImmagineA
$letturaX: coordinata X del punto di origine lettura dall'immagine da sovrapporre.
$letturaY: coordinata Y del punto di origine lettura dall'immagine da sovrapporre.
$larghezza: larghezza di porzione d'immagine da leggere dal punto di origine ($letturaX , $letturaY)
$altezza: altezza di porzione d'immagine da leggere dal punto di origine ($letturaX , $letturaY)
$percentuale: di opacità dell'immagine sovrapposta
Il valore della percentuale può variare da 0 a 100, dove 0 è massima trasparenza, l'immagine è invisibile e 100 massima opacità..
Valori fuori dal range 0-100 non determinano errore ma risultati imprevedibili.
Nell'esempio seguente, es_45_
imagecopymerge, viene sovrapposta un'immagine ad un'altra diminuendo l'altezza di 36 pixel e dissolvendola del 30%,
<?php
$ImmagineA =
imagecreatefromjpeg('cane.jpg'); // carica l'immagine di fondo
$DimensioniImageA =
getimagesize('cane.jpg');
//$DimensioniImageA[0]; // larghezza
//$DimensioniImageA[1]; // altezza
$percentuale = 30; // percentuale di opacità dell'immagne sovrapposta
$ImmagineB =
imagecreatefrompng( "copyright.png" ); // carica l'immagine da sovrapporre
$DimensioniImageB =
getimagesize("copyright.png");
//$DimensioniImageB[0]; // larghezza
//$DimensioniImageB[1]; // altezza
// calcolla distanza dal margine sinistro
$destinazione_x_su_immagine_fondo = ($DimensioniImageA[0] - $DimensioniImageB[0])/2;
// calcolla distanza dal margine superiore -18 pixel che sono da non copiare
$destinazione_y_su_immagine_fondo = ($DimensioniImageA[1] - ($DimensioniImageB[1]-18))/2 ;
// posizione x,y di partenza per il prelievo dell'immagine da sovrapporre
$punto_x_lettura_da_immagine_sovrapposta = 0;
$punto_y_lettura_da_immagine_sovrapposta = 18; // -18 pixel che sono da non copiare
// dimensione della parte dell'immagine da sovrapporre
$larghezza_prelevata_da_immagine_da_sovrapporre = $DimensioniImageB[0];
$altezza_prelevata_da_immagine_da_sovrapporre = $DimensioniImageB[1] - 36; // -36, da NON copiare
// esegue la funzione
imagecopymerge ($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,
$percentuale );
header('Content-Type: image/jpeg');
imagejpeg($ImmagineA); // al browser
imagejpeg($ImmagineA,"NomeFile.jpg"); // salva
imagedestroy($ImmagineA); // libera memoria
imagedestroy($ImmagineB);
?>
Risultato: