Jump to content


Photo

Script De Tratamento De Fotos


  • Faça o login para participar
115 replies to this topic

#1 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 08/07/2004, 16:03

Olá senhores...
desenvolvi um script PHP para tratamento de fotos com as seguintes caracteristicas:

- Cria as fotos em 2 tamanhos (visualização e miniatuaras);
- Insere a logomarca do site e/ou marca d'água;
- Aumenta a compactação das imagens;
- Faz um "tratamento" na imagem (brilho e contraste);
- Salva os arquivos com os nomes num formato automatizado.

Gostaria de tornar o script disponível sob a seguinte condição: que fosse criado algo como uma área de implementação e melhoria do script, acho que vocês chamam isso de contest, implementar caracteristicas como: uploads automáticos, configuração em tempo de execução... etc e tal. Quem sabe até seja um sistema que todos venham a utilizar em seus sites de eventos e festas?!

O script é bem simples e esta totalmente comentado para facilitar o entendimento.

Tópico relacionado:
http://forum.wmonlin...istema de fotos

Aguardo resposta e sugestões.
------
Mero mortal!

#2 LucasMS

LucasMS

    Super Veterano

  • Usuários
  • 2076 posts
  • Sexo:Não informado

Posted 08/07/2004, 16:13

eu tenho um sistema q faz isso tb:
- Cria as fotos em 2 tamanhos (visualização e miniatuaras);
- Insere a logomarca do site e/ou marca d'água;
- Salva os arquivos com os nomes num formato automatizado.

eh bom pra ninguem roubar link de imagem :P

#3 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 08/07/2004, 16:26

Certamente o seu faz alguma coisa que meu script não faz ou faz de forma diferente, melhor ou mais rápida, ou o meu faz melhor ou mais rápido, ou a performace é até a mesma.

Outras pessoas também devem ter, o lance é que queria incrementar mais o projeto, até por isso, já vi diversas pessoas postando atras de algo do genero ou tirando dúvidas sobre seus próprios scripts de tratamento de imagens... então, todos trabalhariamos em pró de 1 unico script, sob a licença de software livre, como um grupo de desenvolvedores... alguém afim de entrar na onda?
------
Mero mortal!

#4 LucasMS

LucasMS

    Super Veterano

  • Usuários
  • 2076 posts
  • Sexo:Não informado

Posted 08/07/2004, 16:57

eu nao posso entra pq tenho muito trabalho ja ... mas seria legal fazer uma equipe de programmers de software livre aki ...

#5 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 09/07/2004, 09:43

Parece que não houve um interesse da galera, mas ainda estou aguardando o interesse de alguns.

ps.: to postando pro tópico subir mesmo, goste ou não... é pro bem de todos mesmo.
------
Mero mortal!

#6 [C]oOkiE

[C]oOkiE

    Normal

  • Usuários
  • 82 posts
  • Sexo:Não informado

Posted 09/07/2004, 10:36

kra eu tenho interesse sim, eu ainda nao desenvolvi esse tpo de script por falta de conhecimento, mas realmente gostaria de aprender a manipular imagens no php :)

aguardo resposta []

#7 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 09/07/2004, 11:20

Parece que não houve um interesse da galera, mas ainda estou aguardando o interesse de alguns.

ps.: to postando pro tópico subir mesmo, goste ou não... é pro bem de todos mesmo.

ue sô, então pendura esse topico !!!

assim num fica toda hora subindo ele !

e pode ser até + facil para a galera achar !
(OBS: se precisar de algo para melhor o script e só falar )

até + !!!
-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#8 Lord Spy

Lord Spy

    Normal

  • Usuários
  • 91 posts
  • Sexo:Não informado

Posted 09/07/2004, 11:27

Fala galera, tudo blz?!

Bom, é o seguinte. Acho que muitos aqui tem interesse em estar ajudando com o aperfeiçoamento do script e incrementá-lo. É só a galera se prontificar, que com a ajuda de todos fica bem mais fácil.
Podemos estar usando estes recursos para implementar na galeria do thiagão_rsl e deixá-la uma xxxxxx de uma galeria :D :lol: :P
tenho interesse sim em ajudar.

Entao galera, quem tá dentro ae? é só postar aqui!!

nem que seja ajuda com design, javascript.. já tá show!
a intenção é que todos ganhem com isso!

Ah, e seria interessante tb que o gbr_chacal colaborasse com o código dele tb.. sei lá, qto mais gente pra ajudar, melhor, nem q seja um pouco.

Qualquer coisa, estamos aí!
falow !
té mais

Edição feita por: Lord Spy, 09/07/2004, 12:02.


#9 Marcão

Marcão

    Marcãaaaaaaaao

  • Usuários
  • 1754 posts
  • Sexo:Não informado
  • Interesses:Faixa preta de Muay-Thay<br>Faixa Roxa de Jiu-Jitsu<br>:D<br>Um dia eu chego lá

Posted 09/07/2004, 11:29

to dentro
Marcão -=- PHP é coisa de MESTRE e falo mais nada -=-
Minha Foto
"Não temas,segue adiante,não olhes para trás!!
Segura na mão de
Deus e vai.."

#10 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 09/07/2004, 12:01

obs.: Versão atualizada no dia 13/07/2004, olhar restante dos posts.

A intenção não é que seja simplemente um Script, e sim um aplicação.

Script:
PHP
<?php


set_time_limit
(300);

// taxa de compressão do JPEG
$tx_compressao = 80;

// imagem com logomarca e marca d`água
$arq_marca = 'marca.png';

// tamanho para visualização no site
$tam_orig_x = 300;
$tam_orig_y = 255;

// tamanho de thumbnails no site
$tam_thumb_x = 65;
$tam_thumb_y = 49;

// correção de gamma de cores
$tx_correcao = 1.6;

// pasta de origem, onde o script vai carregar as imagens originais
$dir = "./orig";

// pasta de destino, onde o script vai gravar as imagens geradas
$dst = "./conv";

// prefixo das imagens do thumbnail
$pre_thumb = "t";

// função para processos graficos da foto.
function criafoto($arquivo) {

    global $tx_compressao, $tx_correcao, $arq_marca, $tam_orig_x, $tam_orig_y, $tam_thumb_x,$tam_thumb_y, $dir, $dst, $pre_thumb;

    // carrega a imagem com a marca
    $marca = imagecreatefrompng("$arq_marca");
    $isx = imagesx($marca);
    $isy = imagesy($marca);

    // transparencia, para o exemplo, o fundo da imagem marca.png deve ser branco
    imagecolortransparent($marca, imagecolorallocate($marca, 0, 225, 0));

    // carrega foto original
    $foto = imagecreatefromjpeg("$dir/$arquivo");

    // gera imagens que resultarão na imagem final
    $final = imagecreatetruecolor($tam_orig_x, $tam_orig_y);
    $thumb = imagecreatetruecolor($tam_thumb_x, $tam_thumb_y);

    // pega o tamanho da imagem original
    $ifx = imagesx($foto);
    $ify = imagesy($foto);

    // copia o conteudo da imagem original para o imagem resultado final
    imagecopyresampled($final, $foto, 0, 0, 0, 0, $isx, $isy, $ifx, $ify);

    // aplica correção de gamma (brilho e contraste)
    imagegammacorrect($final, 1.0, $tx_correcao);

    // coloca a marca d`água
    imagecopyresampled($final, $marca, 0, 0, 0, 0, $isx, $isy, $isx, $isy);

    // gera thumbnail a partir da imagem final
    imagecopyresampled($thumb, $final, 0, 0, 0, 0, $tam_thumb_x, $tam_thumb_y, $isx, $isy);

    // gera foto na pasta destino
    imagejpeg($final, "$dst/$arquivo", $tx_compressao);

    // gera thumbnail na pasta destino
    imagejpeg($thumb, "$dst/$pre_thumb$arquivo", $tx_compressao);
}

// procedimento para realizar o processo para todos os arquivos da pasta configurada.
if (is_dir($dir)) {
    if ($pasta = opendir($dir)) {
        while (($arq_imagem = readdir($pasta)) !== false) {
            if (!(($arq_imagem == ".") || ($arq_imagem == "..")))
                criafoto($arq_imagem);
        }
        closedir($pasta);
    }
}

echo
"concluido!";
exit;


?>


Funcionamento do script:
- varre todos os arquivos de uma determinada pasta;
- captura a imagem original;
- transforma a imagem para 2 tamanhos, alterando a taxa de compactação;
- aplica um pequeno tratamento de gamma (brilho e contraste);
- aplica a marca e/ou marca d'água apartir de uma outra imagem, pré estabelecida;
- salva as imagens em uma outra pasta;

Como esta sendo aplicado:
- roda localmente por conta do tempo de execução do script;
- 130 fotos a 2.1mp demora cerca de 8 minutos (P3 750mhz com 128mb);

Idéias:
- implementar sistema de configuração, via MySQL, para que as caracteristicas fiquem gravadas;
- implementar sistema de upload;

Os testes foram realizados em:
- PHP 4.3.6;
- GD 2.0.22;
ps.: necessário ter permissão de escrita nas pastas.


Aguardo sugestões.

Edição feita por: Prog, 13/07/2004, 13:43.

------
Mero mortal!

#11 AveNoturna

AveNoturna

    Normal

  • Usuários
  • 111 posts
  • Sexo:Não informado
  • Localidade:Brasília - DF

Posted 09/07/2004, 12:06

Pô cara super interessante esse script.... acho que posso precisar dele.... nunca mexi com tratamente de img em PHP....


pendura o tópico ae.!!!!!
Vida Longa e Próspera...
E que a força esteja com Vocês!

#12 lucianobruch

lucianobruch
  • Visitantes

Posted 09/07/2004, 15:43

Gostei do Script , mas não to conseguindo criar a marca d'água, tipo ele cria a marca mas sobrepõe a foto.
Se alguem puder me ajudar.....

#13 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 09/07/2004, 15:54

Possivelmente seja algo relacionado a versão do PHP e/ou do GD que esta executando o Script. Fazendo alguns testes com o mesmo, tive problemas para utiliza-lo com o PHPTriad (instala uma versão muito antiga do PHP).

Execute um phpinfo() e verifique as versões.
------
Mero mortal!

#14 lucianobruch

lucianobruch
  • Visitantes

Posted 09/07/2004, 16:05

Possivelmente seja algo relacionado a versão do PHP e/ou do GD que esta executando o Script. Fazendo alguns testes com o mesmo, tive problemas para utiliza-lo com o PHPTriad (instala uma versão muito antiga do PHP).

Execute um phpinfo() e verifique as versões.

Na verdade o script funcionou com o arquivo png da marca d'água original, o problema é com a criação do png personalizado, tentei fazer alguns teste aqui mas não obtive exito.

#15 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 09/07/2004, 16:22

A imagem PNG eu criei usando o Photoshop, salvei com formato de 24bits sem transparencia, para este script, o fundo da imagem tem que ser branco, para que ele funciona com outro fundo, é necessário alterar alguns parametros.
------
Mero mortal!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq