Recentemente para um projeto na movin’ on precisei juntar duas imagens para gerar um PDF delas.
Para gerar o PDF é bem tranquilo, mas juntar as imagens já é um pouco mais complicado. Quer dizer, não é tão complicado assim, mas não encontrei nenhum artigo em português sobre isso. Dessa forma, resolvi escrever este.
Farei o passo a passo para quem está começando. Se você já quiser o código pronto, vá até o final do artigo.
Primeiramente, você precisa das suas duas imagens. A imagem de fundo e a imagem que quer juntar.
Imagem de fundo:

Imagem que quer juntar:

$backgroundSource = "http://www.64bitjungle.com/wp-content/themes/openbook22-en/images/rss-subscribe.jpg";
$feedBurnerStatsSource = "http://feeds2.feedburner.com/~fc/64BitJungle?bg=151515&fg=ffffff&anim=0";
As duas linhas que informam a biblioteca GD para criar as imagens na “memória do php” são as seguintes:
$outputImage = imagecreatefromjpeg($backgroundSource);
$feedBurnerStats = imagecreatefromgif($feedBurnerStatsSource);
Segui o exemplo do artigo original e criei a imagem jpg e outra gif, mas você pode mudar isso para o que achar melhor.
Depois disso você precisa saber as dimensões da imagem que deseja juntar com a sua imagem. Para pegar as dimensões devemos usar imagesx e imagesy:
$feedBurnerStatsX = imagesx($feedBurnerStats);
$feedBurnerStatsY = imagesy($feedBurnerStats);
Agora acontece a mágica, imagecopymerge (combina as duas imagens):
imagecopymerge($outputImage,$feedBurnerStats,156,50,0,0,$feedBurnerStatsX,$feedBurnerStatsY,100);
Pronto, dessa forma, você já tem a imagem mesclada no formato PNG:
header('Content-type: image/png');
imagepng($outputImage);
imagedestroy($outputImage);
Veja o código abaixo, ele é o código necessário para juntar as imagens PNG:
<?php
//Set the Image source variables
$backgroundSource = "http://www.64bitjungle.com/wp-content/themes/openbook22-en/images/rss-subscribe.jpg";
$feedBurnerStatsSource = "http://feeds2.feedburner.com/~fc/64BitJungle?bg=151515&fg=ffffff&anim=0";
//Create new images
$outputImage = imagecreatefromjpeg($backgroundSource);
$feedBurnerStats = imagecreatefromgif($feedBurnerStatsSource);
//Grab width and height of the FeedBurner image
$feedBurnerStatsX = imagesx($feedBurnerStats);
$feedBurnerStatsY = imagesy($feedBurnerStats);
//Merge the two images
imagecopymerge($outputImage,$feedBurnerStats,156,50,0,0,$feedBurnerStatsX,$feedBurnerStatsY,100);
//Output header
header('Content-type: image/png');
//send new image to browser
imagepng($outputImage);
imagedestroy($outputImage);
?>
Até o próximo!







