Daviferreira.com blog

Set

07

Manipulando imagens com PHP

comentários (8)publicado por Davi Ferreira . 07/09/2007 . 00:52

Quem nunca precisou desenvolver uma galeria de imagens? Ou até mesmo um simples módulo para destaques de um site, com o redimensionamento automático de fotos para a capa? Manipulação de imagens é uma das tarefas mais comuns em sistemas web e pode vir a ser uma tarefa chata caso toda vez você tenha que reinventar a roda e reescrever dezenas de linha de código para adequar a manipulação aos desejos do cliente.

Neste post apresento uma classe desenvolvida em parceria com o camarada Paulo Coutinho, exclusivamente para o tratamento e manipulação de imagens utilizando PHP e sua extensão GD.

A classe, apelidada de m2brimagem, ainda está em seu estágio inicial, mas já possui métodos para redimensionamento e conversão de formatos, entre outros. Algumas funções foram reaproveitadas e todos os devidos créditos acompanham o arquivo fonte.

Pré-requisitos

Para utilizar a classe, será necessário o download de sua última versão no link abaixo além de um servidor com php instalado com suporte à biblioteca GD.

Exemplo 1

Agora vamos ao que interessa! Neste primeiro exemplo realizaremos um redimensionamento simples, mantendo a proporção da imagem.

teste.php

O primeiro passo é instanciar o objeto da classe imagem, carregando no construtor a imagem que será manipulada:

Logo na sequência validamos a imagem através do método valida. Caso o resultado seja 'OK', executamos os métodos para redimensionamento e geramos a nova imagem com saída no navegador. Se a imagem não existir, ou simplesmente não for um arquivo de imagem, o script retornará a mensagem de erro.

Clique aqui e veja o arquivo teste.php em ação!

Exemplo 2

Vamos agora dar uma leve incrementada em nosso arquivo teste.php, fazendo com que ele passe a receber via parâmetros as novas dimensões da imagem e o nome do arquivo, permitindo assim o redimensionamento on the fly:

A imagem abaixo está sendo redimensionada em tempo real utilizando o exemplo anterior (confira aqui a imagem original).

redimensionamento em tempo real

Exemplo 3

E que tal varrer todo um diretório, criar thumbnails e ao mesmo tempo manter as imagens originais? Alguém aí falou em galeria de imagens?

Voilá! No exemplo acima, o script varre o subdiretório galeria, procura por arquivos do tipo JPG e cria suas miniaturas dentro de galeria/thumbs/.

Exemplos rápidos

Confira alguns outros métodos da classe m2brimagem em ação:

Marca d'água

marca d'água

Flip

flip horizontal

Texto / legenda

legenda em texto

Como citei no início deste post, a classe ainda está em um estágio inicial do desenvolvimento. Diversas melhorias já estão na nossa lista. Para participar e acompanhar o desenvolvimento, enviar comentários, dúvidas e correções, acesse a página do projeto no Google Code.

publicado em: Classes | PHP
envie seu comentário

8 pessoas já comentaram este artigo

 

1

14/09/2007 12:25RamonRamon

Bonito seu blog, parabéns! Está tudo bem explicado. Gostei também que você deixou os códigos separados da numeração de linha. Estou tentando fazer o tutorial. Quando terminar comentarei algo, ou pedirei ajuda. Sou iniciante em php e estou procurando tutorial sobre isso. Até agora nenhum funcionou de acordo com meus superficiais conhecimento.

2

17/09/2007 22:59Higor DelgadoHigor Delgado

Parabens pelo Blog, muito boa sua maneira de explicar.

Tem como você publicar como se manipula um arquivo? tipow.. gravar em memoria, testar qual o tipo, tamanho e se possível com barra de progresso?

Podia fazer 2 tutoriais um com barra e outro sem barra.

Abraço!

3

18/09/2007 00:30Davi FerreiraDavi Ferreira

Valeu pelos comentários, rapaziada :)

@Ramon: qualquer dúvida é só falar. A documentação da classe ainda é praticamente inexistente, mas espero que este post te ajude!

@Higor: tá nos meus planos um artigo sobre upload com barra de progresso etc. Assim que rolar um tempo livre.

4

24/09/2007 11:22Leo LimaLeo Lima

muito bom seu blog…parabéns

5

24/10/2007 03:50Tiago RochaTiago Rocha

Era o que eu precisava, não a galeria mas redimensionar as fotos!

valeu cara, rodei a net toda parei aqui!

Parabéns! add favoritos

6

06/03/2008 12:17fabiofabio

amigo, sua funcao, por algum motivo nao esta gerando thumb de gif animado

7

29/08/2008 18:40DaniloDanilo

Amigo.. usei este codigo.. mas aki da um erro.. que nao consigo arrumar

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}'

nao mexi em nada no codigo.. estou tentando usar o exemplo3

8

14/09/2008 22:55Davi FerreiraDavi Ferreira

@Fabio: o GD não gera gif animado mesmo, não tem como.

@Danilo: Veja se na hora de copiar o código você não esqueceu alguma coisa. Ou então repara nas aspas se estão OK, às vezes dá pau na hora de copiar/colar, tem que digitar as aspas de novo.

enviar comentário