LOGIN:

iMasters | Por uma internet mais criativa e dinâmica

Feeds

Quarta-feira, 13/10/2004 - 13:22 - Por Júlio César Martini
Seções relacionadas:

Sistema de imagens - Parte 05

Fala galera!

Essa semana criaremos a opção para fazer o redirecionamento de imagens. Informaremos o diretório, a palavra chave (usada para a criação do diretório que estará recebendo as novas imagens) e a largura/altura em pixels.

O script abaixo foi montado da forma mais simples possível para que seja de fácil entendimento ao leitor. É claro que faltam muitos acertos que devem ser feitos como validações de campos entre outras coisas que no decorrer dessa série acrescentaremos. Espero contar com a ajuda de todos para que, ao final, esse sistema possa ser útil a toda comunidade.

Vamos lá:

Menu do sistema

config.php

Foi adicionado uma variável que será a responsável por guardar os path onde as imagens novas serão geradas.

<?
//CAMINHO DAS IMAGENS A SEREM GUARDADAS
$c_pathimg = "c:/pagina/imasters/106/convertida";
?>

Opção: redirecionamento de imagens

Escolhendo essa opção o usuário deverá preencher os campos abaixo:

Diretório a ser lido: Informar o path completo onde se encontram as fotos para serem redirecionadas.

Palavra chave: Diretório a ser criado para armazenar as novas fotos (exemplo: teste)

Largura: Informar a largura em pixels da nova imagem (exemplo: 300)

Altura: Informar a altura em pixels da nova imagem (exemplo: 300)

* Todos os campos são de preechimento obrigatório

redimensiona.php

Arquivo responsável por efetuar o redimensionamento.

<?
//RECEBE OS DADOS DO FORMULÁRIO
$v_diretorio = $_POST[txtDiretorio];
$v_chave = $_POST[txtChave];
$v_largura = $_POST[txtLargura];
$v_altura = $_POST[txtAltura];

//VARRE AS IMAGENS DO DIRETÓRIO (FUNÇÃO CONTIDA NO ARQUIVO funcoes.php)
$imagens = RetImagens($v_diretorio);

$redireciona = RedImagens($v_diretorio, $v_chave, $v_largura, $v_altura);
?>

Função RetImagens() - criamos no artigo da semana passada.

Função RedImagens()

<?
function RedImagens($v_diretorio, $v_descricao, $v_largura, $v_altura) {
 //GLOBAL
 
global $imagens;
 global $c_pathimg;


 //VERIFICA SE POSSUI ALGUMA IMAGEM
 
if($imagens) {
  //ATRIBUI
  
foreach($imagens as $chave => $valor) {
   //ATRIBUI
   
$arq_valido[] = $imagens[$chave][VALIDO];
   $arq_invalido[] = $imagens[$chave][INVALIDO];

  
}//FECHA FOREACH
 
}//FECHA IF(IMAGENS)


 //IMAGENS VALIDAS PARA SEREM REDIRECIONADAS
 
foreach($arq_valido as $chave => $valor) {
  //IMAGEM VÁLIDA
  
$imagem = $arq_valido[$chave];
  $caminho = $v_diretorio."/".$imagem;


  //CRIA UMA NOVA IMAGEM
  
$imagem_orig = ImageCreateFromJPEG($caminho);

  //LARGURA/ALTURA DA IMAGEM
  
$pontoX = ImagesX($imagem_orig);
  $pontoY = ImagesY($imagem_orig);


  //CRIA O THUMBNAIL
  
$imagem_fin = ImageCreateTrueColor($v_largura, $v_altura);

  //COPIA A IMAGEM
  
ImageCopyResampled($imagem_fin, $imagem_orig, 0, 0, 0, 0, $v_largura+1, $v_altura+1, $pontoX, $pontoY);

  //VERIFICA SE JÁ EXISTE A PASTA CONFORME DESCRIÇÃO
  
if(!(is_dir("$c_pathimg/$v_descricao"))) {

   //CRIA A PASTA
   
mkdir("$c_pathimg/$v_descricao", 0777);

   //DÁ PERMISSÃO DE LEITURA E DE ESCRITA NA PASTA
   
chmod("$c_pathimg/$v_descricao", 0777);
  
}//FECHA IF(is_dir)

  //SALVA A IMAGEM
  
ImageJPEG($imagem_fin, "$c_pathimg/$v_descricao/".$imagem);

  //LIBERA A MEMÓRIA
  
ImageDestroy($imagem_orig);
  ImageDestroy($imagem_fin);

 
}//FECHA FOREACH
?>

<script language="JavaScript">
<!--
 alert("ATENÇÃO\n\nVerifique se foi tudo gerado no diretório <? echo  $c_pathimg."/".$v_descricao ?>");
 window.history.go(-2);
//-->
</script>


<?
}//FECHA FUNCTION

?>

Depurando o código

Linha 170: Recebemos a var $imagens que contém as imagens do diretório varrido (foi retornada pela função RetImagens).

Linha 174 a 181: Lemos esse array e pegamos apenas as imagens válidas.

Linha 185: Lemos o array para começarmos a redirecionar imagem por imagem.

Linha 192 a 202: Redirecionamos a imagem.

Linha 204: Verificamos se a palavra chave informada existe como diretório. Caso contrário, cria a pasta.

Linha 217: Por fim, gravamos a nova imagem na pasta.

Imagens incluídas no artigo para testes

Baixando o script no link abaixo você econtra na pasta TEMP, 02 imagens para serem usadas em seus testes.

Na hora que o script pedir o diretório informe esse, ok?

Para conferir toda a série sobre o Sistema de Imagens, clique nos links abaixo:

>> Sistema de Imagens - Parte 01
>> Sistema de Imagens - Parte 02
>> Sistema de Imagens - Parte 03
>> Sistema de Imagens - Parte 04

Para baixar o script, clique no link abaixo.

DOWNLOAD

Clique AQUI e faça o download do script.

Semana que vem tem mais. Espero que vocês tenham gostado :-)

Não deixe de nos enviar críticas ou sugestões para o próximo assunto, afinal a coluna é de vocês. E lembrem-se de votar no iMasters para o iBest 2005.

Boa semana a todos. Até mais!

Todos os artigos de Júlio César Martini

9 comentários publicados

  • 1. Pra que salvar os thumbs?

    Terça-feira, 19/10/2004, por Silas Tammerik Inácio da Silva

    Então Julio, tava olhando seu script e todo esse ultima coluna foi para redimensionar a foto e alocar ela em uma pasta certo? No caso, fazer os thumbs das fotos, mas pra que salvar os thumbs? Eu faço isso mas utilizo apenas a imagem grande da foto, gero o thumb mas não salvo, assim liberado muito mais espaço no servidor, no caso de sites de festas, onde é necessário muito espaço para guardar as fotos, quanto menos ocupar melhor. Eu pelo menos utilizo esse mesmo esquema mas não salvo os thumbs, fica a mesma coisa.

    Responder comentário
  • 2. coluna php

    Quarta-feira, 20/10/2004, por EVERARDO CORDEIRO LIMOEIRO

    acompanho a coluna php a 6meses adoro todos os artigos grato!!1

    Responder comentário
  • 3. Salvar thumbs!

    Quinta-feira, 21/10/2004, por Kélcyo Pereira

    Fala galera,
    Antes de mais nada gostaria de agradecer os elogios que tenho recebido sobre essa série de sistema de imagens.
    Sobre salvar ou não salvar as imagens é uma alternativa que podemos estar adicionando ao nosso sistema se esse for o interesse dos leitores.
    Obrigado.
    Júlio

    Responder comentário
  • 4. Script para não salvar fotos

    Quinta-feira, 21/10/2004, por Silas Tammerik Inácio da Silva

    Então, se alguem quiser ver como faço para gerar as fotos e não salvar, eu postei esses tempos o script no phpbrasil, segue o link: http://www.phpbrasil.com/scripts/source.php/id/2590

    Responder comentário
  • 5. ZIP

    Sexta-feira, 22/10/2004, por ramon dos santos lummertz

    para fechar com chave de ouro só falta duas coisa... uma enviar as fotos num arquivo .zip e cadastrar elas num bd, para podemor fazer coment ... oq vc acha?

    Responder comentário
  • 6. Biblioteca DBX

    Sexta-feira, 22/10/2004, por Murilo Elias Rodrigues

    Gostaria de parabenizar o Júlio por este "livro online" que temos disponível aqui no imasters.
    Seria interessante uma matéria sobre bibliotecas de abstração de BD, falando dos tipos, vantagens e desvantagens de cada uma.
    valew

    Responder comentário
  • 7. Script

    Quinta-feira, 04/11/2004, por Gabriel Manzano

    Cade o script do artigo?

    Responder comentário
  • 8. Download...

    Sábado, 06/11/2004, por pablo bello

    O Download do script está com o link quebrado, vai para o erro 404

    Responder comentário
  • 9. dowload

    Segunda-feira, 06/02/2006, por espanka

    ola julio seus scripts sao show, mas onde ta o link pra baixar o SCRIPT FEITO o link da dano o erro 404 como posso conseguir o SCRIPT ?

    Responder comentário

Poste um comentário


Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.

Sobre o autor

Júlio César Martini atualmente presta serviços de WebMaster/Programador para o UOL (http://www.uol.com.br), Graduado em Tecnólogo em Informática pela UNIFIAN - Faculdades Anhanguera e Pós-Graduado em Desenvolvimento de Software para Web pela UFSCAR. Foi o primeiro profissional a chegar à marca de 100 artigos publicados no iMasters e trabalha com PHP desde 2000. Site: http://www.juliocesarmartini.com


Indique para um amigo

captcha

TI SHOP Produtos iMasters

  • Lançamento: CD-ROM Treinamento Aplicado de SQL - Lançamento! Treinamento Aplicado de SQL - Aprenda a trabalhar com SQL com bancos de dados Oracle e SQL Server. São mais de 100 tópicos explicados por Mauro Pichilliani, um articulistas mais lidos do iMasters. Aproveite! Apenas R$ 69,90 no TI SHOP.
  • Lançamento: Livro iMasters "O Encontro de 2 Mundos"- Este livro conta com 56 crônicas de profissionais mais admirados e influentes do mercado brasileiro de Internet. Aproveite o preço especial para leitores do iMasters. Apenas R$ 40,00 e envio imediato!
  • DVD Curso Completo de Photoshop - Do conceito à finalização Lançamento! Curso Completo de Photoshop, em DVD, com mais de 230 aulas dividas em 4 módulos: conceito, básico, avançado e finalização. Apenas R$ 69,50 no TI SHOP - Frete com 50% de desconto
  • DVD Javascript Starter - Curso Completo Com mais de 9 horas de vídeo-aulas, é um curso completo sobre Javascript. Ideal para quem deseja aprender a linguagem. Apenas R$ 64,90 no TI SHOP - Frete com 50% de desconto!

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.