Organizando fotos de camêra digital

Nesse artigo explico como criar e usar um script PHP para rodar em linha de comando cuja finalidade é organizar as imagens baixadas de sua máquina digital. O script guarda as imagens no formato original numa pasta e em formato web em outra.

[ Hits: 14.472 ]

Por: Glaydson em 01/04/2005


O script



O script é esse e deve ficar numa pasta acima das anteriores.

<?
# Script PHP para ler um diretório e renomear os arquivos de acordo com a data
# Altera a configuração dos arquivos para formatação para publicação na
# internet
# Por Glaydson Lima - glaydson [arroba] navegantes [ponto] org
# Versão 0.1 - 08/03/2005


# Configuração
# Nome da Pasta onde ficarão as imagens com resolução máxima

$dir_full = "full/";

# Nome da Pasta com arquivo com formato para Web
$dir_web = "800/";
$resolucao = "800x600";

# Nome da Pasta onde ficarão as novas imagens
$dir_origem = "novas";

# Fim de Configuração


$dia = date("d");
$mes = date("m");
$ano = date("Y");

# Criando diretório de ano
if ( !file_exists("$dir_full/" . $ano) ) {
    mkdir("$dir_full/" . $ano,0755);
    mkdir("$dir_web/" . $ano,0755);
}

# Criando diretório de ano + mês
if ( !file_exists("$dir_full/" . $ano . "/" . $mes) ) {
    mkdir("$dir_full/" . $ano . "/" . $mes,0755);
    mkdir("$dir_web/" . $ano . "/" . $mes,0755);
}

# Criando diretório de ano + mês + dia
if ( !file_exists("$dir_full/" . $ano . "/" . $mes . "/" . $dia) ) {
    mkdir("$dir_full/" . $ano . "/" . $mes . "/" . $dia,0777);
    mkdir("$dir_web/" . $ano . "/" . $mes . "/" . $dia,0777);
}

# Renomeando arquivos
$dir_destino = "$dir_full" . $ano . "/" . $mes . "/" . $dia . "/";

if ( file_exists($dir_origem) ) {
    $handle = opendir("$dir_origem");
    while ($arquivo = readdir($handle)) {
       if(!is_dir($arquivo)) {
           echo "Movendo $arquivo para $dir_destino ... \n";
           $arquivo_origem = "$dir_origem/$arquivo";
           $arquivo_destino = $dir_destino . $ano . $mes . $dia . "_". $arquivo;
           $arquivo_web = $dir_web . $ano . "/" . $mes . "/" . $dia . "/". $ano . $mes . $dia . "_". $arquivo;
          # copy($arquivo_origem,$arquivo_destino);
          
          echo "Convertendo para formato web ($resolucao) ... \n";
          
          exec("convert -sample $resolucao \"$arquivo_origem\" \"$arquivo_web\"");          
       }
    }
    closedir($handle);
} else {
    echo "Erro! Diretório destino ($dir_destino) não existe\n";
}
?>

Salve como digital.php por exemplo e execute:

$ php -q digital.php

Finalizando


Este script mostra como é possível escrever programas em PHP para este fim. Claro que poderia ser feito em shell, mas como sou mais familiarizado com programação PHP, resolvi desenvolver desta forma.

Desta forma seria fácil transformar em PHP-GTK e ter uma interface gráfica.

Página anterior    

Páginas do artigo
   1. Problema
   2. O script
Outros artigos deste autor

Software Livre e Matemática Financeira

Leitura recomendada

O perigo no gerenciador de uploads do PHP

PEAGLE: Serviço Web de busca indexada em seu servidor local

Manipulação de arquivos com PHP

Trabalhando com arquivos em PHP

Upload de imagens com criação de thumbnails em PHP

  
Comentários
[1] Comentário enviado por BIRILO em 01/04/2005 - 08:31h

Esse "artigo" poderia ser resumido da seguinte forma:

Nome: Album de fotos em PHP
Descrição: Script em php para geração de álbum virtual. Necessário instalar convert e imagemagik

E deveria ser colocado na seção de Scripts. Mas claro, um artigo vale mais pontos. =(

Revoltante!

Sem mais,
Danilo

[2] Comentário enviado por agente100gelo em 01/04/2005 - 08:36h

Beleza amigo. Foi mal a minha barbeiragem. Só queria contribuir. Sinceramente não tô afim de ficar me "rankeando". Não preciso disso. Não era essa a intenção. Foi meu primeiro artigo, nem tinha visto a seção de script. Se é um script e não um artigo q se passe para a seção ou apague.

Engraçado é vc achar esta bobagem como "revoltante". Paciência!

[3] Comentário enviado por BIRILO em 01/04/2005 - 08:48h

Foi mal ter julgado a sua intenção. Peço desculpas.
Mas realmente tem gente que pensa assim.

Só acho que estes casos devem ser estudados na aprovação do artigo.


sem mais,
Danilo

[4] Comentário enviado por agk em 01/04/2005 - 15:04h

Realmente uma técnica bastante interessante para organizar fotos, talvez os moderadores devessem ter mais cuidado ao publicar artigos/dics/scripts, mas o importante é que o conteúdo é bom, independente se for script ou artigo a intenção do nosso amigo Glaydson é boa. Ninguém aqui recebe um tostão para escrever um artigo, dica, script, etc... É tudo trabalho voluntário no melhor espírito do software livre e não acho que alguém iria perder seu tempo escrevendo um artigo só por alguns "pontinhos" no ranking. O importante mesmo é ter a satisfação de poder estar colaborando com a comunidade, dando um retorno que se aprendeu na mema moeda, conhecimento.

[5] Comentário enviado por fernandofat em 01/04/2005 - 15:53h

Gostei do script vou utilizá-lo em casa... =)

Valeu manow!

[6] Comentário enviado por lyma em 01/04/2005 - 17:19h

Pode-se acrescentar

#!/caminho/para/o/bin/php -q

na primeira linha do arquivo e dar um

chmod 755 digital.php

nele pra executar direto chamando no prompt com

./digital.php


[7] Comentário enviado por Anjinhoo em 02/04/2005 - 00:22h

gostei cara..
vou testar aqui..

[]`Z


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts