+1

Marca d’água em tempo de execução em PHP

criado por Benjamin Grando Moreira em 18/03/2007 9:00am
O Script

O script tem apenas 13 linhas e inicia com um header() para dizer ao browser que você vai mostrar uma imagem no formato JPEG. Com essa linha a página irá chamar o script pela tag <img> mostrando a imagem. Declarar o tipo de arquivo (no caso JPEG) é necessário porque o tipo padrão dos scripts PHP é "text/html".

<?php
header('content-type: image/jpeg');
?>

A marca d’água

Usaremos um arquivo chamado 'marcadagua.png' que é colocado no mesmo diretório do script. O arquivo deve ser um PNG-8 e não um PNG-24 pois existe um bug na GD e faz o formato PNG-24 não ser usado corretamente.

<?php
$watermark = imagecreatefrompng('marcadagua.png');
?>

Usamos as funções do PHP imagesx() e imagesy() para pegar a largura e o comprimento da imagem respectivamente.

<?php
$watermark_width = imagesx($watermark);  
$watermark_height = imagesy($watermark);
?>

Comentários:

Mostrando 1 - 6 de 6 comentários
Mauro disse:
Excelente artigo, claríssimo e objetivo!

Pergunta: como colocar a marca d'água usando um script php para upload?

Assim a própria imagem já ficaria protegida no servidor. Seria útil no caso de usuários que fazem envio de imagens on line.

Ótimo artigo!
20/09/2007 6:45am (~17 anos atrás)

Ótimo artigo...gostei
13/06/2007 12:12am (~17 anos atrás)

Diego Larroyd disse:
Estou com o GD instalado mais nao esta dando de usar o codigo.. esta dando os seguintes erros

imagecopymerge(): supplied argument is not a valid Image resource in C:\http\pepecas\marca_dagua.php on line Warning:
imagejpeg(): supplied argument is not a valid Image resource in Warning:
imagedestroy(): supplied argument is not a valid Image resource in C:\http\pepecas\marca_dagua.php on line
27/04/2007 12:44am (~17 anos atrás)

ou você pode simplesmente descomentar a linha extension=php_gd2.dll
no php.ini e reiniciar o seu apache
27/03/2007 5:17am (~17 anos atrás)

BOZO disse:
Claro que sim, no artigo ele diz isso...

Faça o teste


if(function_exists("imagecreate")){

echo "GD instalada.";

}


se não tiver baixa em http://www.libgd.org/Downloads

19/03/2007 6:19am (~17 anos atrás)

cara, mto bacana seu artigo, porém estou tendo dificuldades pra rodar em servidor local, ou seja, no meu computador, eu tenho que ter o GD instalado, como eu consigo?
19/03/2007 12:38am (~17 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)