Marca d’água em tempo de execução em PHP
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".
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.
Usamos as funções do PHP imagesx() e imagesy() para pegar a largura e o comprimento da imagem respectivamente.
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); ?>
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
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
no php.ini e reiniciar o seu apache
27/03/2007 5:17am
(~17 anos atrás)
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
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)
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!