0

Classe Imgtool (upload, redimensiona e converte formatos)

criado por Jefrey em 19/01/2014 12:41pm
A classe Imgtool utiliza PHP GD para redimensionar mantendo proporção, converter formatos e realizar upload de arquivos de imagens.

Upload
upload ( file origem , string destino [ , bool nome_aleatorio = true ] )
- origem: precisa estar no array $_FILES
- destino: pode ser um diretório ou o nome do arquivo diretamente
- nome_aleatorio: se o destino for um diretório, diga se prefere utilizar um nome aleatório para o arquivo ou o nome original do mesmo

- retorno: -1 se não houve arquivo enviado. -2 se a extensão é inválida. nome do arquivo enviado em caso de sucesso
<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="file" name="imagem" />
<input type="submit" />
</form>
<?php
include 'class/imgtool.class.php';

$upload = imgtool::upload($_FILES['imagem']
if($upload==-1) echo 'Por favor, escolha um arquivo.';
elseif($upload==-2) echo 'Arquivo inválido.';
else echo 'Arquivo enviado e salvo em: '.$upload;

Converter
convert ( string formato_destino )
- formato: pode ser jpg, png, bmp ou gif
$img = new imgtool;
$img->setinput('imagens/entrada.png');
$img->setoutput('imagens/saida.jpg');
$img->convert('jpg');
$img->save();

Redimensionar
resize ( int max_largura, int max_altura )
$img = new imgtool;
$img->setinput('imagens/entrada.png');
$img->setoutput('imagens/saida.png');
$img->resize(640, 480); // a proporção será mantida automaticamente
$img->save();

Dicas:
Exibindo imagem ao invés de salvar
Você pode exibir a imagem diretamente, ao invés de salvá-la.
Ao invés de:
$img->setoutput('imagens/saida.jpg');
$img->save();
Use (a classe se encarrega de enviar os headers):
$img->show();

Acelere o setinput
Ao invés de:
$img = new imgtool;
$img->setinput('imagens/entrada.jpg');
Você pode fazer simplesmente:
$img = new imgtool('imagens/entrada.jpg');

Desenvolvido por mim (Jefrey Sobreira Santos
Bugs ou sugestões: jefreysobreira[at]gmail[dot]com
Data Autor Changelog Download
19/01/2014 12:41pm Jefrey - Versão 1.0

Comentários:

Nenhum comentário foi enviado ainda.

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)