Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jacques030498

[Resolvido] Fundo preto em imagem

Recommended Posts

Olá, estou com um erro ao tentar fazer uma imagem que gera outra por cima da mesma, o erro é o seguinte:

 

Ao lado direito e abaixo da segunda imagem (a que está por cima) aparece uma borda preta...

 

Já tentei de tudo pra tira-la, porém não consigo de jeito nenhum...

 

Ah, aliás, não sei muito bem como explicar, abaixo está o código que eu estou usando:

<?php
include("config.php");

header('Content-type: image/png');

$sql = mysql_query("SELECT * FROM pin ORDER BY id desc LIMIT 1");
$row = mysql_fetch_array($sql);

$pinimg = $row['img']; //Imagem salva no banco de dados
$pinmarca = imagecreatefrompng($pinimg); //Cria a imagem que estava salva no banco
$pin_wdt  = imagesx($pinmarca); //Mede a largura da imagem do banco
$pin_hgh  = imagesy($pinmarca); //Mede a altura da imagem do banco
$image = imagecreatetruecolor($pin_wdt, $pin_hgh); //Cria uma imagem com o mesmo tamanho da imagem que está no banco
$fdn = imagecolorallocate($image, 30, 189, 255);
imagefill($image, 0, 0, $fdn); //Muda a cor de fundo da imagem recém criada

$image = imagecreatefrompng('pinbg.png'); //Cria a imagem de fundo
$size = getimagesize('pinbg.png'); //Pega o tamanho da imagem de fundo

$xx = 75; //Margem da imagem que será colocada acima do fundo
$yy = 77; //Margem da imagem que será colocada acima do fundo
$cor = imagecolorallocate($image, '255', '255', '255'); //Cor do primeiro texto
$cor2 = imagecolorallocate($image, '0', '0', '0'); //Cor do segundo texto
$fonte = 'font.ttf'; //Fonte usada no texto
$texto = $row['local']; //Texto salvo no banco
imagettftext($image, '16', '0', '32', '172', $cor2, $fonte, $texto); //Digita o primeiro texto
imagettftext($image, '16', '0', '30', '170', $cor, $fonte, $texto); //Digita o segundo texto

//Redimenciona a imagem que ficará acima do fundo por 40 x 40
$largura = 40; //Largura
$altura = 40; //Altura
$nova = imagecreatetruecolor(40, 40); //Cria a imagem que ficará acima do fundo
$fundo = imagecolorallocate($nova, 30, 189, 255);
imagefill($nova, 0, 0, $fundo); //Muda a cor de fundo da imagem
imagecopyresampled($nova, $pinmarca, 0, 0, 0, 0, $largura, $altura, $pin_wdt, $pin_hgh); //Coloca a imagem acima do fundo
//Fim do redimencionamento

imagecopymerge($image, $nova, $xx, $yy, 0, 0, $pin_wdt, $pin_hgh, 100); //Junta as duas imagens

imagepng($image); //Mostra a imagem
imagedestroy($image); //Apaga o fundo
imagedestroy($pinmarca); //Apaga a imagem que fica acima do fundo
?>

 

Espero que dê pra entender pelo código :D

 

Como fica no navegador:

2cpf1vl.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.