Você está na página 1de 14

Aplicando efeitos em Imagens com o PHP.

muito comum, ao trabalha com sites para a internet a necessidade de utilizar imagens, e to comum quanto, desenvolver galerias de fotos e/ou outros sistemas que utilizem das imagens do visitante. O problema que nem todos os visitantes possuem conhecimento para redimensionar, cortar, aplicar efeitos, marca d`gua, texto de direitos autorais e outros recursos em suas fotos antes de enviar os arquivos para o banco de dados do site. Como ns programadores PHP pensamos sempre na facilidade do sistema para nossos visitantes, nos vemos na necessidade de resolver estas tarefas para o visitante. Mas como? Existem na internet vrias classes em PHP que nos auxiliam nesta atividade. Estas classes utilizam a biblioteca grfica do Linux compilada para o PHP para tratar as imagens. Vamos ver uma dessas classes que nos permite uma infinidade de tarefas com as imagens dos nossos visitantes. A classe se chama EasyPHPThumbnail e pode ser baixada no site do desenvolvedor atravs do link:

http://www.mywebmymail.com/?q=system/files/easyphpthumbnail.zip
Os exemplos tambm podem ser visto no site do desenvolvedor.

http://www.mywebmymail.com/

Iniciando a classe
Faa a incluso do arquivo da classe em seu cdigo e em seguida inicie um objeto desta classe. Percebam que no necessrio passar nenhum parmetro na instanciao da classe. <?php include_once('inc/easyphpthumbnail.class.php'); $thumb = new easyphpthumbnail; $thumb -> Createthumb('gfx/image.jpg'); ?>

Sada
Podemos escolher duas formas de sada para o resultado do mtodo Createthumb. Por padro a opo screen que vai gerar a imagem e imprimir na tela. Podemos ainda utilizar a opo file o que ir salvar o arquivo em uma pasta definida no servidor sem exib-la. <?php include_once('inc/easyphpthumbnail.class.php'); $thumb = new easyphpthumbnail; $thumb -> Createthumb('gfx/image.jpg'); E include_once('inc/easyphpthumbnail.class.php');

$thumb = new easyphpthumbnail; $thumb -> Createthumb('gfx/image.jpg',screen);

OU include_once('inc/easyphpthumbnail.class.php'); $thumb = new easyphpthumbnail; $thumb -> Createthumb('gfx/image.jpg',file); ?>

Alterando vrias imagens de uma s vez


Podemos tratar vrias imagens de uma nica vez, sem a necessidade de ficar instanciando objetos da mesma classe. Para isso, basta que passemos uma matriz com o endereo das imagens que queremos tratar e a opo file para que as imagens sejam armazenadas. <?php include_once('inc/easyphpthumbnail.class.php'); $thumb = new easyphpthumbnail; $thumb -> Createthumb(array('gfx/image.jpg','image2.jpg','image3.jpg'),'file'); ?>

O prefixo das imagens geradas


Por padro, a classe easyphpthumbnail gera uma nova imagem com o mesmo nome da imagem original porm com o prefixo thumbnail_. Exemplo: thumbnail_imagem1.jpg para a foto imagem1.jpg. Podemos alterar esse prefixo atribuindo um valor para este atributo. <?php include_once('inc/easyphpthumbnail.class.php'); $thumb = new easyphpthumbnail; $thumb->Thumbprefix = mini_; $thumb -> Createthumb(array('gfx/image.jpg','image2.jpg','image3.jpg'),'file'); ?>

Formato do arquivo de sada


Podemos ainda, escolher o formato de sada para a nova imagem entre JPG e PNG. Para isso basta que alteremos o valor padro do atributo Thumbsaveas. <?php include_once('inc/easyphpthumbnail.class.php'); $thumb = new easyphpthumbnail; $thumb->Thumbprefix = mini_; $thumb->Thumbsaveas = png; $thumb -> Createthumb(array('gfx/image.jpg','image2.jpg','image3.jpg'),'file'); ?>

Novo local para os arquivos


Por padro, apesar de alterar o nome do novo arquivo, a classe easyphpthumbnail salva os novos arquivos na mesma pasta do arquivo original. Caso nossa necessidade exija que salvemos em uma pasta diferente, podemos definir o endereo para os novos arquivos atravs do atributo Thumblocation. <?php include_once('inc/easyphpthumbnail.class.php'); $thumb = new easyphpthumbnail; $thumb->Thumbprefix = mini_; $thumb->Thumbsaveas = png; $thumb->Thumblocation = miniaturas/; $thumb -> Createthumb(array('gfx/image.jpg','image2.jpg','image3.jpg'),'file'); ?>

Dessa forma os arquivos gerados sero salvos dentro de uma pasta chamada miniaturas dentro da pasta onde os arquivos originais se encontram.

Redimensionar imagens
Podemos definir o tamanho das novas imagens a serem geradas que a classe cuidar de atribuir a elas alturas de forma que no deforme a imagem. Podemos fazer este redimensionamento definindo tamanhos em pixels ou porcentagem. Para definir os tamanho sem pixels, basta que alteremos o atributo Thumbsize com os tamanhos em pixels que queremos a nova imagem. <?php include_once('inc/easyphpthumbnail.class.php'); $thumb = new easyphpthumbnail; $thumb -> Thumbsize = 120; $thumb -> Createthumb('gfx/image.jpg'); ?> Para definir o tamanho em porcentagem, alm de informar um valor para o atributo Thumbsize, precisamos tambm setar como true o atributo percentage. <?php include_once('inc/easyphpthumbnail.class.php'); $thumb = new easyphpthumbnail; $thumb -> Thumbsize = 50; $thumb -> Percentage = true; $thumb -> Createthumb('gfx/image.jpg'); ?> Dessa forma definimos que vamos redimensionar as imagens para a metade de seu tamanho (50%).

Rotacionar imagens
Podemos rotacionar fotografias, para isso basta atribuir um valor para o atributo Rotate com os graus que queremos rotacionar a imagem.

<?php include_once('inc/easyphpthumbnail.class.php'); $thumb = new easyphpthumbnail; $thumb -> Thumbsize = 50; $thumb -> Rotate = 90; $thumb -> Percentage = true; $thumb -> Createthumb('gfx/image.jpg'); ?>

Criando bordas arredondadas


Para criarmos boras arredondadas para as imagens e conseguir um efeito muito legal para as fotos, devemos atribuir valores para um vetor de sete posies no atributo Clipcorner.

[0]: [1]: [2]: [3]: [4]: [5]: [6]:

0=disabilitado 1=retor ou 2=arredondado Porcentagem do corte Cortar randomicamente - Booleano 0=disabilitado 1=habilitado Topo esquerdo Booleano 0=disabilitado 1=habilitado Inferior esquerdo Booleano 0=disabilitado 1=habilitado Topo direito - Booleano 0=disabilitado 1=habilitado Inferior direito - Booleano 0=disabilitado 1=habilitado

<?php include_once('inc/easyphpthumbnail.class.php'); $thumb = new easyphpthumbnail; $thumb -> Backgroundcolor = '#D0DEEE'; $thumb -> Clipcorner = array(2,15,0,0,1,1,0); $thumb -> Createthumb('gfx/image.jpg'); ?>

sada do cdigo acima Percebam que os cantos que foram arredondados ficam com uma cor de background, pois atribumos um valor para o atributo Backgroundcolor. Caso precisamos que os cantos arredondados fiquem transparentes, devemos utilizar o atributo Maketransparent passando um vetor com 4 posies. [0]: [1]: [2]: [3]: Booleano 0=disabilitado 1=habilitado 0=PNG 1=GIF cor para substituio: '#FF0000' Tolerncia RGB 0 100

<?php include_once('inc/easyphpthumbnail.class.php'); $thumb = new easyphpthumbnail; $thumb -> Backgroundcolor = '#0000FF'; $thumb -> Clipcorner = array(2,15,0,1,1,1,1);

$thumb -> Maketransparent = array(1,1,'#0000FF',30); $thumb -> Createthumb('gfx/image.jpg'); ?>

Margem e sombra nas imagens


Podemos ainda incluir margens e sombra nas imagens geradas atravs dos atributos Framewidth, Framecolor e shadow onde Framewidth o tamanho da margem, Framecolor a cor que gostaramos de ter na margem e shadow um booleano (true para ter sombra, false para no ter). <?php include_once('inc/easyphpthumbnail.class.php'); $thumb = new easyphpthumbnail; $thumb -> Framewidth = 10; $thumb -> Framecolor = '#FFFFFF'; $thumb -> Backgroundcolor = '#D0DEEE'; $thumb -> Shadow = true; $thumb -> Createthumb('gfx/image.jpg'); ?>

Imagem gerada com o cdigo acima

Texto sobre as imagens


Para proteger as fotografias de cpias indevidas, podemos atribuir sobre elas algum texto de direitos autorais. Para isso utilizamos os atributos Copyrighttext para definir o texto desejado, Copyrightposition para definir a posio do texto na imagem, Copyrightfonttype caso precisamos definir alguma fonte especfica para o texto. Neste caso devemos guardar na pasta da classe easyphpthumbnail o arquivo TTF da fonte. Copyrightfontsize para definir o tamanho do texto e copyrighttextcolor para definir a cor.

<?php include_once('inc/easyphpthumbnail.class.php'); $thumb = new easyphpthumbnail; $thumb -> Thumbsize = 300; $thumb -> Copyrighttext = 'www.tgiovanella.com.br'; $thumb -> Copyrightposition = '50% 90%'; $thumb -> Copyrightfonttype = 'handwriting.ttf'; $thumb -> Copyrightfontsize = 30; $thumb -> Copyrighttextcolor = '#FFFFFF'; $thumb -> Createthumb('gfx/image.jpg'); ?>

Opes
$thumb -> Createthumb('imagepath'[,'output']) Cria uma instancia da classe. Output padro Screen mas tambm pode ser utilizado como file para gerar os arquivos e no exibir automaticamente na tela.

$thumb -> Thumbsize

= (int)

Tamanho do novo arquivo (largura para paisagem, altura para retrato).

$thumb -> Thumbheight Altura da imagem.

= (int)

$thumb -> Thumbwidth Largura da imagem.

= (int)

$thumb -> Percentage

= (boolean)

Use TRUE para que o tamanho fornecido para a imagem seja em porcentagem e no pixels.

$thumb -> Framewidth

= (int)

Adiciona uma borda no contorno da imagem.

$thumb -> Framecolor

= (string)

A cor da margem (contorno) no format exadecimal (#FFFFFF).

$thumb -> Inflate

= (boolean)

Use TRUE se permite que a imagem seja esticada.

$thumb -> Shadow

= (boolean)

Adiciona uma sombra no contorno da imagem.

$thumb -> Binder

= (boolean)

Desenha um espiral de caderno no canto esquerdo da imagem.

$thumb -> Binderspacing

= (int)

Espaamento entre a espiral e a imagem

$thumb -> Backgroundcolor

= (string)

Cor de fundo da imagem no format exadecimal (#FFFFFF).

$thumb -> Watermarkpng

= (string)

Caminho do PNG a ser usado como marca d`gua.

$thumb -> Watermarkposition

= (string)

Posio da marca. (50% 50%) o meio da imagem.

$thumb -> Watermarktransparency = (int) Nvel de transparencia da marca d`gua.

$thumb -> Quality

= (int)

Qualidade da imagem resultante.

$thumb -> Chmodlevel

= (string)

O cdigo de acesso da imagem resultante (CHMOD).

$thumb -> Thumblocation

= (string)

Endereo do diretrio para salvar a nova imagem.

$thumb -> Thumbprefix

= (string)

Prefixo do nome do arquivo gerado (padro thumbnail_).

$thumb -> Thumbsaveas

= (string)

Converte o arquivo gerado para o format informado (GIF, JPG ou PNG).

$thumb -> Clipcorner

= (array)

Corta as bordas da imagem obedecendo os parametros de um array de 7 posies. [0]: [1]: [2]: [3]: [4]: [5]: [6]: 0 = desabilitado, 1 = reto, 2 arredondado. Porcentagem do corte. Cortar randomicamente. 0 = desabilitado, 1 habilitado Borda superior esquerda. 0 = no cortar, 1 cortar Borda inferior esquerda. 0 = no cortar, 1 cortar Borda superior direita. 0 = no cortar, 1 cortar Borda inferior direita. 0 = no cortar, 1 cortar = (array)

$thumb -> Ageimage

Adiciona o efeito de imagem envelhecido obedecendo os parametros de um array de 3 posies. [0]: 0 = desabilitado, 1 = habilitado [1]: Adicionar rudo. De 0 a 100. [2]: Profundidade do Sephia. De 0 a 100. (0 = escala de cinza).

$thumb -> Cropimage

= (array)

Corta a imagem obedecendo um array de 6 posies. [0]: [1]: [2]: [3]: [4]: [5]: 0=desabilitado 1=habilitar corte livre 2=habilitar corte a partir do centro 3=habilitar corte retangular 0=porcentagem 1=pixels Cortar esquerda Cortar direita Cortar acima Cortar abaixo.

$thumb -> Borderpng

= (string)

O caminho do png da borda a ser utilizada.

$thumb -> Copyrighttext

= (string)

Texto de copyright a ser inserido sobre a imagem.

$thumb -> Copyrightposition

= (string)

Posio do texto na imagem (50% 50% o centro da imagem).

$thumb -> Copyrightfonttype

= (string)

Endereo do arquivo TTF da fonte a ser utilizada no texto caso queira utilizar uma fonte diferente.

$thumb -> Copyrightfontsize O tamanho da fonte do texto.

= (int)

$thumb -> Copyrighttextcolor A cor do texto.

= (string)

$thumb -> Rotate

= (int)

Rotacionar a imagem em graus.

$thumb -> Fliphorizontal

= (boolean)

Inverte a imagem horizontalmente.

$thumb -> Flipvertical

= (boolean)

Inverta a imagem verticalmente.

$thumb -> Square

= (boolean)

Desenha o arquivo emu ma tela quadrada.

$thumb -> Applyfilter

= (boolean)

Aplica um filtro 3x3 definido pelo usurio.

$thumb -> Filter

= (array)

Matriz do filtro definido pelo usurio com nove posies. [0]: [1]: [2]: [3]: [4]: [5]: [6]: a1,1 a1,2 a1,3 a2,1 a2,2 a2,3 a3,1

[7]: a3,2 [8]: a3,3 $thumb -> Divisor O divisor do filtro. = (int)

$thumb -> Offset Cor offset para o filtro.

= (int)

$thumb -> Blur Filtro automatico: Blur.

= (boolean)

$thumb -> Sharpen Filtro automatico: Sharpen

= (boolean)

$thumb -> Edge iltro automatico: Edge

= (boolean)

$thumb -> Emboss Filtro automatico: Emboss

= (boolean)

$thumb -> Mean Filtro automatico: Mean

= (boolean)

$thumb -> Croprotate

= (boolean)

Rotaciona e corta a imagem para que fique do tamanho da camada definida.

$thumb -> Perspective

= (array)

Aplica uma pespectiva na imagem obedecendo uma matriz de 3 posies. [0]: 0=desabilitar 1=habilitar [1]: Direo 0=esquerda 1=direita 2=topo 3=abaixo [2]: Fora da perspectiva. De 0 a 100.

$thumb -> Perspectivethumb

= (array)

Aplica uma perspectiva na imagem obedecendo um vetor de 3 posies. [0]: 0=desabilitar 1=habilitar [1]: Direo 0=esquerda 1=direita 2=topo 3=abaixo [2]: Fora da perspectiva. De 0 a 100.

$thumb -> Shading

= (array)

Aplica o efeito shading na imagem (efeito de grafite). [0]: [1]: [2]: [1]: 0=desabilitar 1=habilitar Fora do efeito. 0 100 rea do efeito. 0 100 Direo 0=esquerda 1=direita 2=topo 3=abaixo

$thumb -> Shadingcolor

= (string)

A cor do efeito Shading no format exadecimal (#FFFFFF).

$thumb -> Mirror

= (array)

Aplica o efeito de espelhamento obedecendo um vetor de 5 posies. [0]: [1]: [2]: [3]: [4]: 0=desabilitar 1=habilitar Fora do incio do efeito do gradiente 0 100 Fora do fim do efeito do gradiente 0 100 rea do efeito 0 100 Lacuna entre a imagem original e o efeito em pixels.

$thumb -> Mirrorcolor Cor do espelhamento.

= (string)

$thumb -> Negative Efeito de negative na imagem.

= (boolean)

$thumb -> Colorreplace

= (array)

Subtitui uma cor por outran a imagem. Obedece um vetor de 4 posies. [0]: 0=desabilitar 1=habilitar [1]: Cor a ser utiizada: ('#00FF00').

[2]: Cor a ser substituida: ('#FF0000'). [3]: Tolerancia RGB 0 - 100

$thumb -> Pixelscramble

= (array)

Reposiciona os pixels aleatoriamente na imagem. [0]: 0=desabilitar 1=habilitar [1]: Arranjo dos pixels [2]: Repeties (use com cuidado!).

$thumb -> Greyscale

= (boolean)

Converter imagens para escala de cinza.

$thumb -> Brightness

= (array)

Altera o brilho da imagem obedecendo um vetor de duas posies. [0]: 0=desabilitar 1=habilitar [1]: Brilho. De -100 a 100.

$thumb -> Contrast

= (array)

Change the contrast of the image array(1,30) [0]: 0=desabilitar 1=habilitar [1]: Contraste. De -100 a 100.

$thumb -> Gamma

= (array)

Muda o fator gamma da imagem. [0]: 0=desabilitar 1=habilitar [1]: Fator de correo Gamma.

$thumb -> Palette

= (array)

Change the palette of the image array(1,32) [0]: 0=desabilitar 1=habilitar [1]: Fator de correo Gamma. $thumb -> Colorize = (array)

Mesclar uma corn a matriz de cores da imagem. Obedece um vetor de 5 posies.

[0]: [1]: [2]: [3]: [4]:

0=desabilitar 1=habilitar RGB, Vermelho. 0 255 RGB, Verde. 0 255 RGB, Azul. 0 255 Nvel de opacidade. 0 127.

$thumb -> Pixelate

= (array)

Pixelar uma imagem. Obedece um vetor de 2 posies. [0]: 0=desabilitar 1=habilitar [1]: Tamanho do bloco em pixels.

$thumb -> Medianfilter

= (boolean)

Aplica o filtro mediano de reduo de rudos.

$thumb -> Twirlfx

= (array)

// Aplica o efeito twirl na imagem. Obedece um vetor de 3 posies. [0]: 0=desabilitar 1=habilitar [1]: Fora do Efeito. 0 100 [2]: Direo do espiral 0=horrio 1=anti-horrio.

$thumb -> Ripplefx

= (array)

// Aplica um feito de distoro na imagem. Obedece um vetor de 5 posies. [0]: [1]: [2]: [3]: [4]: 0=desabilitar 1=habilitar Quantidade de ondas horizontais Amplitude das ondas horizontais Quantidade de ondas verticais Amplitude das ondas verticais

$thumb -> Lakefx

= (array)

Aplica a deformao (Lake) na imagem. [0]: 0=desabilitar 1=habilitar [1]: Densidade das ondas. [2]: rea mensurada pelo efeito. 0 100.

$thumb -> Waterdropfx

= (array)

Apply a waterdrop deformation to the image array(1,1.2,400,40)

[0]: [1]: [2]: [3]:

0=desabilitar 1=habilitar Amplitude em pixels Radius em pixels Fora das ondas em pixels. = (array)

$thumb -> Maketransparent

Faz com que a imagem fique transparente [0]: [1]: [2]: [3]: 0=desabilitar 1=habilitar 0=PNG, 1=GIF Cor a ser substituida pela transparncia: '#FF0000' Tolerancia RGB. 0 - 100