Página 1 de 2

[TUTORIAL] Colocando marca d'água nas imagens

Enviado: 10 Jun 2011, 21:33
por juliano.r
Fala galera,
para quem quiser colocar uma marca d'água nas imagens para evitar que sejam copiadas segue o tutorial.
**lembrando que é sempre bom fazer um backup dos arquivos existentes**

1- criar o arquivo watermark.png e colocar na pasta image/

2- alterar o arquivo image.php -> system/library/image.php
localizar o código abaixo : linhas 93 a 121
Código: Selecionar todos
    public function watermark($file, $position = 'bottomright') {
            $watermark = $this->create($file);
           
            $watermark_width = imagesx($watermark);
            $watermark_height = imagesy($watermark);
           
            switch($position) {
                case 'topleft':
                    $watermark_pos_x = 0;
                    $watermark_pos_y = 0;
                    break;
                case 'topright':
                    $watermark_pos_x = $this->info['width'] - $watermark_width;
                    $watermark_pos_y = 0;
                    break;
                case 'bottomleft':
                    $watermark_pos_x = 0;
                    $watermark_pos_y = $this->info['height'] - $watermark_height;
                    break;
                case 'bottomright':
                    $watermark_pos_x = $this->info['width'] - $watermark_width;
                    $watermark_pos_y = $this->info['height'] - $watermark_height;
                    break;
            }
           
            imagecopy($this->image, $watermark, $watermark_pos_x, $watermark_pos_y, 0, 0, 120, 40);
           
            imagedestroy($watermark);
        }
e alterar por este:
Código: Selecionar todos
    public function watermark($file, $position = 'bottomright') {
       
      
       $watermark = imagecreatefrompng($file);
           
            $watermark_width  = imagesx($watermark);
            $watermark_height = imagesy($watermark);

            switch($position) {
                case 'topleft':
                    $watermark_pos_x = 0;
                    $watermark_pos_y = 0;
                    break;
                case 'topright':
                    $watermark_pos_x = $this->info['width'] - $watermark_width;
                    $watermark_pos_y = 0;
                    break;
                case 'bottomleft':
                    $watermark_pos_x = 0;
                    $watermark_pos_y = $this->info['height'] - $watermark_height;
                    break;
                case 'bottomright':
                    $watermark_pos_x = $this->info['width'] - $watermark_width;
                    $watermark_pos_y = $this->info['height'] - $watermark_height;
                    break;
             case 'center':
                $watermark_pos_x = ($this->info['width']- $watermark_width)/2;
                $watermark_pos_y = ($this->info['height']- $watermark_height)/2;
                break;
            }
           
            imagecopy($this->image, $watermark, $watermark_pos_x, $watermark_pos_y, 0, 0, $watermark_width, $watermark_height);
           
            imagedestroy($watermark);
        }
3- Alterar o arquivo catalog/model/tool/image.php

Localizar a linha:
Código: Selecionar todos
    $image = new Image(DIR_IMAGE . $old_image);
e logo abaixo acrescentar:
Código: Selecionar todos
    if ($width > 400 || $height > 300) {   
       $image->watermark(DIR_IMAGE . 'watermark.png', 'center');
    }
4- excluir os arquivos que estão em cache
image/cache/data/ "deletar todas as pastas aqui"
isso ira criar novos arquivos com a marca d'água.

agora só atualizar seu site e testar.
para quem quiser ver o resultado é só acessar http://www.jrcomerceweb.com.br

abraços.

Re: [TUTORIAL] Colocando marca d'água nas imagens

Enviado: 11 Jun 2011, 05:20
por Manoel Vidal
Ótima contribuição amigo, parabéns! :D

Re: [TUTORIAL] Colocando marca d'água nas imagens

Enviado: 19 Ago 2011, 01:18
por csr_vds
Obrigado pelo código. Eu gostaria de saber se é possível criar algumas exceções. Ex: Criar uma exceção para que as imagens do slide show da Home não sejam afetadas. Vlw
Imagem

Re: [TUTORIAL] Colocando marca d'água nas imagens

Enviado: 23 Set 2011, 10:16
por Nyux
Olá eu testei e estou com o mesmo problema a marca dagua fica no slide show tbm, alguem sabe como faz pra ficar só nos produtos/?

Re: [TUTORIAL] Colocando marca d'água nas imagens

Enviado: 24 Set 2011, 00:53
por Renato Frota
Vejam se isso funciona (a última edição, na catalog/model/tool/image.php)
Código: Selecionar todos
    if (($width > 400 || $height > 300) AND (strpos($old_image,"slide") === FALSE)) {   
       $image->watermark(DIR_IMAGE . 'watermark.png', 'center');
    }
Agora, é só usar imagens que tenham a palavra "slide" no slideshow.

-- obs: não testado, estou resolvendo "de olho"

Re: [TUTORIAL] Colocando marca d'água nas imagens

Enviado: 27 Set 2011, 16:23
por renatof
Pessoal olá!

Recebi a msg de erro
Notice: Undefined variable: image in /home/renatof/penelopeestilosa.com/loja/upload/catalog/model/tool/image.php on line 28
Fatal error: Call to a member function watermark() on a non-object in /home/renatof/penelopeestilosa.com/loja/upload/catalog/model/tool/image.php on line 28


Parece que ele não encontra o watermark.png que incluí no image.

Alguma sugestão ? tenho a v1.5.1.2

Obrigado!

Re: [TUTORIAL] Colocando marca d'água nas imagens

Enviado: 12 Nov 2011, 10:54
por pws
Já havia aplicado na minha versão 1.4.9.6.
Agora para ter certeza, usei uma ferramenta de comparação de arquivos e nada foi mudado no primeiro arquivo até a versão 1.5.3.1. O segundo não verifiquei.

A solução do Renato Frota funcionou, e no meu caso, os banners estavam com nome bnX.png, então só troquei no código dele de "slide" para "bn".

Está perfeito aqui.

Obrigado!

Re: [TUTORIAL] Colocando marca d'água nas imagens

Enviado: 18 Nov 2011, 21:34
por jofinco
vlw

coloquei ficou show de bola

Re: [TUTORIAL] Colocando marca d'água nas imagens

Enviado: 19 Jan 2012, 12:54
por andersonnarciso
Nom funcionou huauha não aparece nada 1.5.1

Re: [TUTORIAL] Colocando marca d'água nas imagens

Enviado: 20 Jan 2012, 08:37
por juliano.r
limpou a pasta de cache?
Estou com a versão 1.5.3 e está funcionando perfeitamente.