Ultimamente, andei à procura de algum plugin para Wordpress que de alguma forma conseguisse fazer marcas de água para as minhas fotografias.
De todos os plugins disponíveis que encontrei, poucos funcionavam. E dos que funcionavam poucos faziam a marca de água como eu gostaria, e desses todos eles acabavam por colocar a marca de água permanentemente na fotografia, impedindo que possa fazer alterações na marca de água, pois o original ficava marcado para sempre.
A solução imediata parecia que teria de por mãos à obra e fazer uma marca de água / assinatura para cerca de +400 fotos, à mão, individualmente para cada foto, e depois substituir cada uma. De repente parecia que iria ser fácil, mas rapidamente mesmo ao ver que usando um sistema de automatação no Photoshop, iria gastar ainda assim muito tempo e não me resolvia o problema a longo prazo, porque teria de colocar as marcas sempre à mão, e sinceramente é um processo que não me agrada muito, é uma forma aborrecida e porque fico sempre com a imagem com a marca permanente, e para evitar isso teria de manter manter mais cópias, entre outros problemas.
Portanto, a solução teria de passar por ter algo que me criasse a marca de água automaticamente (on the fly) por cada vez que a imagem seja requisitada do servidor, sem nunca danificar o original, porque posso querer a qualquer altura mudar a minha marca de água / assinatura.
Os requisitos para esta execução passam por ter um servidor Apache com o módulo mod_rewrite e PHP5 com o módulo GD.
Colocando mãos à obra, precisamos de editar (ou criar, caso não exista) o ficheiro .htaccess, neste caso na raiz do directório do website. Colocamos o ficheiro o seguinte:
1 2 3 | <IfModule mod_rewrite.c> RewriteRule ^(.*)wp-content/uploads/((.*)\.(jpe?g))$ //watermark/_watermark.php?src=wp-content/uploads/ [T=application/x-httpd-php,L,QSA] </IfModule> |
Genericamente, o que este código faz é:
- 1. Verificar se o módulo Apache mod_reqrite está instalado. Se sim
- 2. Executa em PHP o ficheiro watermark/watermark.php para todas as imagens servidas a partir da pasta wp-content/uploads/
Guardar e fechar o ficheiro .htaccess, daqui não precisamos de mais nada.
De seguida criar uma pasta na raiz chamada de watermark, que é aqui que vamos colocar um ficheiro chamado watermark.php com o seguinte script.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | <? $original = $_SERVER [ 'DOCUMENT_ROOT' ]. $_SERVER [ 'REQUEST_URI' ]; waterMark( $original ); function waterMark( $original ){ $original = urldecode( $original ); $info = GetImageSize ( $original ); $width = $info [0]; $height = $info [1]; // a imagem original $new_image = ImageCreateFromJPEG( $original ); if ( $width > 1080){ // barra ao fundo com transparencia $bg = ImageColorAllocateAlpha( $new_image , 150, 150, 150, 65); // (PHP 4 >= 4.3.2, PHP 5) imagefilledrectangle( $new_image , 0, $height -50, $width , $height , $bg ); // criar cores $white = imagecolorallocate( $new_image , 255, 255, 255); $grey = imagecolorallocate( $new_image , 128, 128, 128); $black = imagecolorallocate( $new_image , 0, 0, 0); if ( $width >= 1080){ // texto a escrever // caminho até à fonte ttf $font = '/var/www/vhosts/clerigo.pt/subdomains/fotografia/httpdocs/watermark/KhmerUIb.ttf' ; // adicionar texto à imagem imagettftext( $new_image , 40, 0, 10, $height -10, $white , $font , $text ); // texto a escrever $text = date ( "Y" ) . ' © João Clérigo ' ; // caminho até à fonte ttf $font = '/var/www/vhosts/clerigo.pt/subdomains/fotografia/httpdocs/watermark/segoepr.ttf' ; // adicionar sombra ao texto imagettftext( $new_image , 20, 0, $width -299, $height -15, $black , $font , $text ); // adicionar texto à imagem imagettftext( $new_image , 20, 0, $width -300, $height -16, $white , $font , $text ); } } // finalmente, servir a imagem header( "Content-Type: image/jpeg" ); ImageJPEG( $new_image ); imagedestroy( $new_image ); } ?> |
E está feito. A partir de agora, todas as imagens servidas a partir da pasta especificada têm sempre marca de água
De tomar nota dois pontos:
- A marca só está a ser criada para imagens cuja largura seja superior a 1600 pixeis
- São necessárias fontes True Type, que devem ser colocadas numa pasta também no servidor
Caro amigo, seu artigo foi muito bem explicado, porém gostaria de saber se ele se aplica a mim, meu site é um sistema de imobiliária gostaria de aplicar a marca em todas as imagens de uma determinada pasta, incluindo imagem e texto.
Olá.
Este exemplo poderá ser aplicado a qualquer situação que envolva o uso de imagens.
No entanto há requisitos mínimos técnicos. Deverá poder:
1. ter acesso ao servidor onde tem alojadas as suas páginas
2. o servidor tem de correr a linguagem PHP
3. ter noções de programação