Ir para conteúdo

POWERED BY:

Arquivado

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

Fernando Wobeto

Marca d'agua nas fotos com fundo transparente (thumbs)

Recommended Posts

Galera, tenho esse código abaixo que gera um thumb de uma imagem com uma logo PNG.

 

A logo PNG tem o fundo transparente, mas nesse código no final, ela nao fica transparente..fica com o fundo preto...segue o código:

 

$im	   	= imagecreatefromjpeg($_GET['imagem']);// copia a imagem	$logo 		= imagecreatefrompng($logo);// copia o logo		  $image 		= imagerotate($im, 0, 0); 			$largurao 	= imagesx($image);	$alturao	  = imagesy($image);	$largura_logo 	= imagesx($logo);	$altura_logo	  = imagesy($logo);	$logo_x 	= $logo_a_largura; 	$logo_y 	= $logo_a_altura;		$alturad	  = imagesy($image);	$largurad 	= imagesx($image); //($largurao*$alturad)/$alturao;	$nova		= imagecreatetruecolor($largurad,$alturad);	$nova_logo 	= imagecreatetruecolor($logo_x,$logo_y);	imagecopyresized($nova,$image,0,0,0,0,$largurad,$alturad,$largurao,$alturao);	imagecopyresized($nova_logo,$logo,0,0,0,0,$logo_x,$logo_y,$largura_logo,$altura_logo);	 	imagecopymerge($nova , $nova_logo , $largurad - ($logo_x + 3) , $alturad - ( $logo_y + 3 ) , 0 , 0 , $logo_x , $logo_y , 100);	imagejpeg($nova);	imagedestroy($nova);	imagedestroy($image);	imagedestroy($logo);

Alguém pode me ajudar indicando onde está errado ou o que mais adicionar?

 

Obrigado http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá uma testada nesse:

 

<?php	$logo = 'logo.png';//endereço da sua logomarca	$imagem = 'bg.jpg';//endereço da imagem	@header("Content-type: image/png");	#define o tipo de material utilizado daqui para frente... nesse caso eh jpg...	$original = imagecreatefromjpeg($imagem);// copia a imagem	$meu_logo = imagecreatefrompng($logo);// copia o logo	$imagem_x = imagesx($original);// pega o valor da largura da imagem	$imagem_y = imagesy($original);// pega o valor da altura da imagem	$logo_x = imagesx($meu_logo);// pega o valor da altura do logo	$logo_y = imagesy($meu_logo);// pega o valor da altura dologo	imagecopymerge($original , $meu_logo , 0 , 0 , 0 , 0 , $logo_x , $logo_y , 100);	imagejpeg($original);	@imagedestroy($original); //Libera memória que estava sendo usada pela cópia da imagem	@imagedestroy($meu_logo); //Libera memória que estava sendo usada pelo logo?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, funcionou, vi que era problema no meu código, mas tbm nao estou sabendo fazer as imagens PNG sem o fundo..alguém saberia me explicar como?Testei com umas que fiz e continuou com o fundo...aí teste com uma outra que nao foi feita por mim e tbm nao tinha fundo e ficou ok, sem fundo.Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, funcionou, vi que era problema no meu código, mas tbm nao estou sabendo fazer as imagens PNG sem o fundo..

 

alguém saberia me explicar como?

 

Testei com umas que fiz e continuou com o fundo...aí teste com uma outra que nao foi feita por mim e tbm nao tinha fundo e ficou ok, sem fundo.

 

Obrigado

Bem acho q vale a pena tentar reviver esse topico... é o sequinte... vou explicar como faz para deixar a logo marca com fundo transparente:

o Codigo abaixo é simples mas está correto:

 

<?php

	$logo = 'logo.png';//endereço da sua logomarca
	$imagem = 'bg.jpg';//endereço da imagem

	@header("Content-type: image/png");
	#define o tipo de material utilizado daqui para frente... nesse caso eh jpg...

	$original = imagecreatefromjpeg($imagem);// copia a imagem
	$meu_logo = imagecreatefrompng($logo);// copia o logo

	$imagem_x = imagesx($original);// pega o valor da largura da imagem
	$imagem_y = imagesy($original);// pega o valor da altura da imagem

	$logo_x = imagesx($meu_logo);// pega o valor da altura do logo
	$logo_y = imagesy($meu_logo);// pega o valor da altura dologo


	imagecopymerge($original , $meu_logo , 0 , 0 , 0 , 0 , $logo_x , $logo_y , 100);

	imagejpeg($original);

	@imagedestroy($original); //Libera memória que estava sendo usada pela cópia da imagem
	@imagedestroy($meu_logo); //Libera memória que estava sendo usada pelo logo

?>

Agora para q o png fique transparente voce deve salvar o logo no tipo PNG-8 (existe o PNG-24 e PNG-32... q para isso não funciona)...

Para fazer isso vai no photoshop:

faça a imagem com fundo transparente e dps vá Save for Web & Devices... PNG-8 e pronto

para fazer o png-8 no fireworks:

deixa o fundo transparente .... vá em salvar como... no tipo de arquivo clica em Flattened PNG e dps em Options... feito isso em FORMAT escolha PNG-8

dps na tabela de cores clique na imagem q deva ser o fundo e dps clique na imagem logo abaixo q informa q ela seja o fundo(é uma imagem com quadradinhos cinza e branco)...

 

Já testei isso... deu certo!!!

 

OBS: Algumas modificaçoes basicas nesse script... e pimba show de bola.... mas ai é com voces!! Já dei mo empurrão.... o meu script ta pronto de acordo com meu gosto... qualidade boa e tudo mais :P

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.