De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Fotografando em raw com software livre - novidades!

Colaboração: Bruno Buys

Data de Publicação: 16 de junho de 2010

O programa dcraw, do Dave Coffin, tornou-se o fundamento no qual todo o ecossistema de programas gráficos livres da atualidade se baseia, para processar imagens raw.

Não obstante a diversidade de interfaces gráficas que foram criadas para ele, existem ao menos dois bons motivos para usar o dcraw diretamente: você fica perto do bare metal, como se diz, ou seja, perto da coisa real, sem nenhuma camada de tradução entre você e o programa. E também, você se beneficia do desenvolvimento tão logo ele seja publicado. E publicar é uma coisa que o Dave faz sempre!

Só em 2010, com três revisões, o dcraw recebeu suporte a mais 13 modelos de câmeras, além de melhorias no suporte para mais dois. São eles: Sony A450, Kodak Z981, Olympus E-P2, e a Panasonic G2 & GF1. Samsung WB550 e a NX10, Casio EX-Z1050 e Fuji HS10. Canon EOS 550D, Digital Rebel T2i, Kiss Digital X4. Suporte para as imagens da A100 modificadas pelo software da Sony. Suporte melhorado: Sony NEX-3 e NEX-5. Isso para mencionar as inovações recentes. O dcraw suporta, ao todo, 373 câmeras digitais, pela última contagem.

Pesquisando os empacotamentos do dcraw para ubuntu, debian e fedora, descobri que os pacotes disponíveis via estas distribuições estão pelo menos três ou quatro versões atrasados. Até aí normal, distribuições facilitam a vida, mas o preço é esse. Só que, além disso, os pacotes para ubuntu e debian não possuem os arquivos de localização, que são necessários para que o sistema mostre as mensagens do programa, e a manpage em português.

Como fui eu quem traduziu o programa para português, bem como a manpage, é claro que eu quero ver as traduções sendo usadas, né?

Nessa dica vou mostrar como contornar os pacotes das distros, instalar o dcraw com tudo que temos direito, e depois, algumas dicas de uso, porque ninguém é de ferro.

Bom, se você usa fedora 13, pode instalar o pacote rpm, que está completo. Se você usa alguma outra distro, pesquise. Se ela é derivada de debian, as chances são de que ela herdou a localização incompleta. De qualquer forma, fazer o procedimento abaixo vai deixar o seu sistema com o dcraw mais atualizado possível, por isso recomendo.

  1. Baixe a versão mais recente:

      wget -c http://www.cybercom.net/~dcoffin/dcraw/archive/dcraw-9.02.tar.gz
    

  2. Instale o gcc, se ainda não o tiver:

      apt-get install gcc
    

  3. Extraia o pacote do dcraw:
      gunzip dcraw-9.02.tar.gz
      tar xvf dcraw-9.02.tar
    
    Isso vai criar o diretório dcraw, com os seguintes arquivos dentro:

  • dcraw.c - o próprio programa, na versão 9.02, quando essa dica foi escrita.
  • arquivos com extensão .1 - Localizações da manpage
  • arquivos com extensão .po - Localizações das mensagens do dcraw
  • install - um script de instalação
  1. Rode o script de instalação, como root.

      ./install
    

    (Se aparecer um erro parecido com esse: install: falta o operando arquivo é porque o install que está rodando é o /usr/bin/install. Comande com ponto-e-barra antes, para se certificar, ou renomeie o script)

    Esse script vai compilar o dcraw.c, instalar e formatar a manpage e as mensagens do programa para todas as línguas que possuem tradução. Se aparecer um errinho sobre a tradução para nl, não se preocupe. As instalações vão para /usr/local, portanto configure seu PATH de acordo, se for necessário.

    Após terminar isso, observei que o konqueror, quando usado para mostrar a manpage do dcraw, ignora a localização na variável $LANG, e abre a manpage em inglês. No console, fazer man dcraw mostra a página em português como deveria, mas o konqueror insiste na página em inglês. Se isso acontecer na sua máquina, você pode contornar assim:

    Faça backup da manpage em inglês

      mv /usr/local/share/man/man1/dcraw.1 /usr/local/share/man/man1/dcraw.1.bak
    

    Crie um link da página em pt correta no mesmo local onde o konqueror busca a página em inglês:

      ln -s /usr/local/share/man/pt.UTF-8/man1/dcraw.1 /usr/local/share/man/man1/dcraw.1
    

    E assim o konqueror mostra a página localizada.

    Claro que você pode sempre abrir a versão online da manpage, em http://cybercom.net/~dcoffin/dcraw/dcraw_pt.1.html

    ==Usando o dcraw para decodificar imagens==

    Eis aqui alguns comandos que podem ser usados com o dcraw, e suas utilidades. Tenha em mente que sempre que o dcraw processa um arquivo, ele não modifica o arquivo original. O seu arquivo raw nunca sofre nenhuma edição, somente é lido e interpretado para que o programa crie a versão da imagem em outro formato.

  2. Extrai miniaturas para uma pré-visualização:

      dcraw -e *.raw
    

    (a extensão .raw é hipotética. As extensões reais dependem da câmera).

    Isso faz com que o dcraw extraia as miniaturas existentes dentro de cada arquivo, gerando versões jpeg para cada uma das fotos existentes no diretório. Em alguns raros casos, a miniatura está no formato ppm, dependendo do modelo da câmera.

    Suponha que você voltou de uma sessão de fotografia, e está louco para ver os resultados. Mas as fotos estão em raw, e têm que ser convertidas antes. A conversão toma muito tempo, especialmente se forem muitas fotos. O comando acima trabalha em lote, ou seja, passa o dcraw em todos os arquivos raw existentes, e como a tarefa é somente extrair a miniatura, não envolve interpolação. É rapidinho.

    Para ficar em segurança e não tomar o velho erro argument list too long, se o seu diretório de arquivos raw tiver mesmo *muitas* fotos, você pode usar a versão power do comando acima:
      for foto in *.raw ; do
            dcraw -e $foto
      done
    
    O loop for ajuda a evitar o erro mencionado.

  3. Cria uma imagem ppm, a partir do original raw (padrão do programa):

      dcraw foto.raw
    

  4. Cria uma imagem TIFF a partir do arquivo raw:

      dcraw -T foto.raw
    

    Este arquivo tiff é um arquivo em resolução completa, no mesmo tamanho do arquivo raw original, RGB, de 8 bits. Se você estiver satisfeito com a imagem assim diretamente, pode mandá-la para impressão. Caso necessite manipulação, pode facilmente abri-la em um editor de imagens, como o GIMP. No entanto, para uso profissional, a melhor entrada para editores de imagens são arquivos com 16 bits de cor. Eis como gerar um arquivo deste tipo:

  5. Criar um arquivo de 16 bit de cor:

      dcraw -6 -T foto.raw
    

    (somando o -T para saída em tiff)

    Nota: O Gimp 2.6 ainda não edita imagens de 16 bits. Uma alternativa é o Krita, do KOffice.

    Se você abrir uma imagem de 16 bits no Gimp, ele vai descartar informação gráfica. Mas vai avisar antes, é claro. A edição de 16bits no Gimp está em preparação. Está relacionada com o desenvolvimento do GEGL, a nova biblioteca gráfica, segundo o FAQ do Gimp (http://www.gimp.org/docs/userfaq.html#16bit).

  6. Setando a data do arquivo raw para a data em que a foto foi feita.

    Repare que nesse caso aqui o dcraw, de fato, faz uma modificação no arquivo raw, ao contrário do que eu disse acima. Mas a modificação é feita nos metadados do arquivo, e não nos dados da imagem)

      dcraw -z foto.raw
    

    A utilidade disso é assim: imagine que você copiou um arquivo raw de um backup antigo. A cópia tem a data atual (do restauro), mas a foto é antiga. Com esse comando, você altera a data do arquivo, usando a data em que a foto foi feita (essa data consta nos metadados da imagem raw). A cópia restaurada do backup passa a constar no seu computador com a data original de quando a foto foi feita.

    O dcraw nativamente suporta ppm e tiff, como formatos de saída. Ele pode criar jpeg's também, através das miniaturas. Para gerar ainda mais formatos, se for necessários, veja abaixo.

  7. Usando pipes para converter para outros formatos:
      dcraw -c foto.raw | pnmtofits > foto.fits
      dcraw -c foto.raw | pnmtopng > foto.png
      dcraw -c foto.raw | ppmtobmp > foto.bmp
    
    Aqui foi usada a opção -c que joga a saída no console, e um pipe para os programas pnmtofits, pnmtopng e pnmtobmp, disponíveis no pacote netpbm.

  8. Inserindo perfis de cor na imagem gerada

    Perfis de cor são ferramentas poderosas. A utilização correta dos perfis de cor permite uma interpretação rigorosa das cores da imagem, através de diversos computadores, sistemas operacionais e (o que é pior) impressoras.

    O perfil de cor padrão é o sRGB. Para obter uma foto tiff em AdobeRGB, faça:

      dcraw -T -o 2 foto.raw
    

    ou para Wide Gamut RGB:

      dcraw -T -o 3 foto.raw
    

    Com esses comandos em mãos, já se pode brincar bastante com fotos em raw. E nunca mais deixe de usar o raw da sua câmera, que é o melhor para se aproveitar o potencial das máquinas semi-pro e profissionais.

    Feliz hacking!

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Bruno Buys