Versão: 20080520
Requisito: PHP5, GD2
Funcionalidade: Classe para o envio de imagens com possibilidade de gerar miniaturas utilizando métodos de crop e marca d'água.
Exemplos: Utilizando Crop, Utilizando Marca d'água (Caravelas, BA)
Comentários: Mais um dentre os muitos scripts encontrados na web para upload de imagens e para gerar miniaturas. A documentação não é lá grande coisa mas dá pra entender, procurei deixar o código bem limpo para o bom entendimento. Livre para compartilhar e adaptar.
Segue abaixo um exemplo de utilização:
<?php include("upload.class.php"); // Instanciando a classe passando $_FILES e uma sugestão de nome das imagens geradas. $obj = new Upload($_FILES['arquivo'], "upload_test"); // Vetor de segurança, o qual será utilizado para fazer a verificação da imagem submetida. // Estes são as quatro possibilidades de chave deste vetor. Nenhuma delas é obrigatória. $arr_security = array( 'min_dimension' => 480, 'max_dimension' => 1024, 'mime' => array('image/jpg', 'image/jpeg'), 'max_size' => 614400 ); // Verificando se a imagem passará pelo método de segurança. if( !$obj->security($arr_security) ) { echo "<pre>"; print_r($obj->getError()); echo "</pre>"; } else { // Criando uma miniatura com os quatro lados iguais. $obj->createSquareThumb(100, "uploads"); // Criando uma miniatura proposrcionalmente menor. $obj->createThumb(640, "uploads", '_thumb', "marcadagua.png"); // Mesma imagem submetida salva no diretório. $obj->send("uploads"); } ?>
Classe em ação: http://pauloandreget...om.br/thumb.php
Os dois vetores exibidos neste exemplo após o upload representa a superglobal $_FILES e as características da imagem temporária.
NOTA: Caso o segundo parâmetro do construtor da classe não esteja definido, o nome será gerado automaticamente baseado nas funções mktime() e md5(). Como neste exemplo eu defini, todos os uploads de teste terão o mesmo endereço, a cada teste haverá a sobreposição.
Thas all folks! Não é uma brastemp mas funciona!
Contribuição
Em especial agradeço ao bimonti pela contribuição na parte de crop.