<?php
// Definido parâmetros como o endereço das imagens, a posição da marca na imagem, a porcentagem de transparência da marca e onde a marca pronta será armazenada
$foto = “http://200.131.250.31/plinio/blog/foto_da_marca.jpg”;
$marca=”http://200.131.250.31/plinio/blog/logo-php.jpg”;
// Rodapé direito, veja os números correspondentes na função
$posicao="3";
// Porcentagem de transparência desejada na marca
$transparencia=”60?;
// Local onde a imagem pronta será armazenada
$saida=”galeria/resultado.jpg”;
class marca_dagua
{
// Construtor, verifica se a biblioteca GD tá no sistema
function marca_dagua()
{
// Verifica se há biblioteca GD no PHP
if(!function_exists(”ImageCreateTrueColor”)) // GD versão 2.*
{
if(!function_exists(”ImageCreate”)) // GD versão 1.*
{
echo “Você não possui a biblioteca GD carregada no PHP!”;
exit;
}
}
}
// Começamos a criar a marca com a função Gera
function gera($imagemfonte, $marcadagua, $imagemdestino, $pos = 0, $transicao = 100)
{
// Obtém o cabeçalho de ambas as imagens
$funcao = $this->verifica_tipo($marcadagua, “abrir”);
$marcadagua_id = $funcao($marcadagua);
$funcao = $this->verifica_tipo($imagemfonte, “abrir”);
$imagemfonte_id = $funcao($imagemfonte);
// Obtém os tamanhos de ambas as imagens
$imagemfonte_data = getimagesize($imagemfonte);
$marcadagua_data = getimagesize($marcadagua);
$imagemfonte_largura = $imagemfonte_data[0];
$imagemfonte_altura = $imagemfonte_data[1];
$marcadagua_largura = $marcadagua_data[0];
$marcadagua_altura = $marcadagua_data[1];
// Aqui, defini-se a posição onde a marca deve aparecer na foto
// Centralizado
if( $pos == 0 )
{
$dest_x = ( $imagemfonte_largura / 2 ) - ( $marcadagua_largura / 2 );
$dest_y = ( $imagemfonte_altura / 2 ) - ( $marcadagua_altura / 2 );
}
// Topo Esquerdo
if( $pos == 1 )
{
$dest_x = 0;
$dest_y = 0;
}
// Topo Direito
if( $pos == 2 )
{
$dest_x = $imagemfonte_largura - $marcadagua_largura;
$dest_y = 0;
}
// Rodapé Direito
if( $pos == 3 )
{
$dest_x = ($imagemfonte_largura - $marcadagua_largura) - 5;
$dest_y = ($imagemfonte_altura - $marcadagua_altura) - 5;
}
// Rodapé Esquerdo
if( $pos == 4 )
{
$dest_x = 0;
$dest_y = $imagemfonte_altura - $marcadagua_altura;
}
// Topo Centralizado
if( $pos == 5 )
{
$dest_x = ( ( $imagemfonte_largura - $marcadagua_largura ) / 2 );
$dest_y = 0;
}
// Centro Direito
if( $pos == 6 )
{
$dest_x = $imagemfonte_largura - $marcadagua_largura;
$dest_y = ( $imagemfonte_altura / 2 ) - ( $marcadagua_altura / 2 );
}
// Rodapé Centralizado
if( $pos == 7 )
{
$dest_x = ( ( $imagemfonte_largura - $marcadagua_largura ) / 2 );
$dest_y = $imagemfonte_altura - $marcadagua_altura;
}
// Centro Esquerdo
if( $pos == 8 )
{
$dest_x = 0;
$dest_y = ( $imagemfonte_altura / 2 ) - ( $marcadagua_altura / 2 );
}
// A função principal: misturar as duas imagens
imageCopyMerge($imagemfonte_id, $marcadagua_id, $dest_x, $dest_y, 0, 0, $marcadagua_largura, $marcadagua_altura, $transicao);
// Cria a imagem com a marca da agua
$funcao = $this->verifica_tipo($imagemdestino, “salvar”);
$funcao($imagemfonte_id, $imagemdestino, 100);
}
// Verifica o tipo da imagem e retorna a função para uso
function verifica_tipo($nome, $acao)
{
if(eregi(”^(.*).(jpeg|jpg)$”, $nome))
{
if($acao == “abrir”)
{
return “imageCreateFromJPEG”;
}
else
{
return “imagejpeg”;
}
}
elseif(eregi(”^(.*).(png)$”, $nome))
{
if($acao == “abrir”)
{
return “imageCreateFromPNG”;
}
else
{
return “imagepng”;
}
}
else
{
echo “Formato de Imagem Inválido!<br>A imagem deve ser PNG ou JPEG!”;
die;
}
}
}
// Chama a função de nova imagem a ser criada
$imagem =& new marca_dagua();
// Cria a imagem de acordo com as imagens fonte, posição e transparência
$imagem->gera(”$foto”, “$marca”, “$saida”, $posicao, $transparencia);
// Imprime a imagem final com a marca, com o nome de resultado.jpg
echo “<img src=”$saida” border=0>”;
?>
Todas as matérias de Igor Diniz
O computador terá o tamanho que você quiser. Poderá ser do tamanho da .
Aqui veremos como aplicar uma tatuagem a qualquer pessoa de uma maneir.
Público é um item fundamental para se ter um site. De que adianta você.
Veja como transformar suas imagens em quebra cabeças de uma maneira be.
Olá pessoal, estou aqui para mais uma vídeo aula, desta vez vou mostra.
Neste tutorial vou mostrar como criar arquivos em formato zip, e como .
O GTK é um conjunto de bibliotecas, desenvolvido originalmente por Pet.
Queridos leitores, hoje vou mostrar para vocês como montar um Feed RSS.
Esta forma você pode ainda passar parâmetros a serem utilizados dentro.
Paginação de resultados hoje é um processo indispensável no desenvolvi.
© 2005 - 2009 - Oficina da Net - v 4.0 - É proibida a reprodução parcial ou completa do conteúdo deste site sem autorização por escrito. Resolução adequada: 1024x768px.
Nicolas
- Publicado em: 22/10/2007 - 10:43
Olá. Testei aqui a classe funciona perfeitamente. Para implementar GIF também basta adicionar depois de elseif(eregi(”^(.*)\.(png)$”, $nome)) { if($acao == “abrir”) { return “imageCreateFromPNG”; } else { return “imagepng”; } } adicione isto depois deste elseif elseif(eregi("^(.*)\.(gif)$", $nome)) { if($acao == "abrir") return "imagecreatefromgif"; else return "imagegif"; } assim irá funcionar com imagens gif também, possibilitando a transparência com gif...