darktable page lede image
darktable page lede image

Visão geral

Capítulo 1. Visão geral

darktable é um aplicativo de código aberto para o fluxo de trabalho em fotografia e revelação RAW, uma mesa de luz e câmara escura virtuais para fotógrafos.

Ele gerencia sua base de dados de negativos digitais importada de várias fontes (inclusive remotamente no clique da câmera), permite visualizá-las em uma mesa de luz com zoom, provê uma rica coleção de módulos para tratamento de imagens, permite explorar os resultados em meio físico e/ou digital ou exibi-las em slides na tela. Todas estas operações são realizadas por fluxos de trabalho com completo gerenciamento de cor.

Características Gerais
  • darktable roda em GNU/Linux / GNOME, Mac OS X / macports, BSD, Windows e Solaris 11 / GTK3.

  • Edição completamente não-destrutiva.

  • Todas as funções principais operam em pixel buffers de ponto flutuante de 4x32-bit para processamento de alta precisão, prevenindo bandeamento e quebra de cores.

  • O darktable faz uso pesado de instruções Streaming SIMD Extensions 2 (SSE2) da CPU para acelerar o processamento. De fato, darktable requer uma CPU x86 que suporta SSE2 ou um processador ARM64.

  • aceleração GPU via OpenCL (detecção e habilitação durante execução).

  • Os módulos de processamento de imagem operam espaço de cores CIELab e vários outros espaços de cor populares baseados em RGB, que são muito mais amplos que a gama dos monitores e impressoras modernos, e mesmo que a visão humana.

  • Monitor completamente gerenciado para cores com prova de cores e verificação de gamut. Inclui suporte para exportar perfis ICC: sRGB, Adobe RGB, XYZ e linear RGB.

  • O módulo coleção permite executar flexíveis buscas no bando de dados, pesquisar suas imagens por etiquetas, classificação (estrelas), etiquetas coloridas e muito mais. Filtrar e ordenar suas coleções dentro da busca básica ou simplesmente etiquetar por etiquetas relacionadas são ferramentas úteis no seu fluxo de trabalho fotográfico diário.

  • Importa uma variedade de padrões de formato de imagens, raw e alto alcance dinâmico (ex. CR2, DNG, JPEG, OpenEXR, PFM).

  • darktable tem uma interface de usuário em tela cheia com zoom de latência zero obtida através de caches multinível em software.

  • Acesso vinculado

  • O darktable pode exportar imagens tratadas em arquivos HDR ou não (JPEG, PNG, TIFF, PDF, PFM, EXR) para armazenamento local em disco, álbuns web, template de livro LaTeX, anexos de email, e pode gerar galerias simples baseadas em HTML.

  • O darktable usa ambos os arquivos associados XMP bem como um rápido bando de dados para armazenar metadados e configurações de processamento. Toda a informação Exif é lida e armazenada usando libexiv2.

  • O darktable vem com mais de 60 módulos de processamento de imagem que cobrem correção de imperfeições em imagem digital e defeitos comuns, ajustas básicos, mudanças de valor tonal, manipulação de cor, assim como melhorias e efeitos artísticos.

  • Você pode instanciar a maioria dos módulos múltiplas vezes e controlar a ordem em que são aplicados.

  • Uma poderosa funcionalidade de máscara dá controle para ajuste fino sobre como o módulo afeta a imagem toda, ou áreas específicas dela. Você pode selecionar áreas da imagem desenhando uma máscara usando várias formas, ou definindo uma máscara paramétrica baseada em valores de pixels.

  • A flexibilidade das máscaras é estendida com a possibilidade de aplicá-las em diferentes modos de fusão e de reusar a mesma máscara em vários módulos.

  • O darktable introduz um altamente eficiente, porém simples clique-simples redutor de ruído que sempre funciona. Ele foi projetado como um módulo onde o desempenho da redução de ruído só depende da câmera e ajuste de ISO. Um banco de dados de perfis contém parâmetros para bem mais de 200 modelos de câmeras populares.

  • O darktable vem com uma interface de scripting para melhoria de funcionalidade usando Lua como linguagem de scripting.

  • Imagens contendo geo-coordenadas podem ser mostradas em um mapa com várias fontes de mapa à sua escolha. Geo-coordenadas podem ser atribuídas a imagens colocando-as no mapa, ou aplicando automaticamente dados de rastreamento GPX.

  • O darktable tem uma funcionalidade de apresentação (slideshow) que permite exibir sua coleção de imagens em tela cheia.

  • Um módulo versátil de impressão permite mandar sua imagem a uma impressora conectada com suporte a gerenciamento completo de cor.

1.1. Invocação do programa

O darktable vem com dois binários principais: a versão padrão com interface gráfica, que é iniciada chamando darktable e a variante com interface de linha de comando, que é iniciada chamando darktable-cli . Adicionalmente, o darktable vem com alguns outros binários para propósitos específicos.

1.1.1. O binário darktable

Este binário inicia o darktable com sua interface gráfica e funcionalidade completa; é a forma padrão de usar o darktable.

darktable é chamado com os seguintes parâmetros de linha de comando:

darktable [-d {all,cache,camctl,camsupport,control,dev,
                fswatch,imageio,input,ioporder,lighttable,lua,masks,
                memory,nan,opencl,params,perf,pwstorage,print,signal,sql,undo}]
          [<input file>|<image folder>]
          [--version]
          [--disable-opencl]
          [--library <library file>]
          [--datadir <data directory>]
          [--moduledir <module directory>]
          [--tmpdir <tmp directory>]
          [--configdir <user config directory>]
          [--cachedir <user cache directory>]
          [--localedir <locale directory>]
          [--luacmd <lua command>]
          [--noiseprofiles <noiseprofiles json file>]
          [--conf <key>=<value>]

Todos os parâmetros são opcionais; na maioria dos casos os usuários iniciarão o darktable sem nenhum parâmetro adicional, e o darktable usará defaults apropriados.

-d

Esta opção habilita a saída de depuração (debugging) para o terminal. Há vários subsistemas do darktable e a depuração de cada um deles pode ser ativada separadamente. Você pode usar esta opção múltiplas vezes se quiser depurar a saída de mais de um subsistema.

<arquivo de entrada>|<pasta de imagens>

Você pode alternativamente dar um nome de arquivo de imagem ou o nome de uma pasta contendo arquivos de imagem. Se um nome de arquivo é dado, o darktable inicia na vista de sala escura com aquele arquivo aberto. Se uma pasta é dada, o darktable inicia na vista da mesa de luz com o conteúdo da pasta como a coleção atual.

--version

Esta opção faz o darktable mostrar seu número de versão, uma nota de copyright, algumas outras informações úteis, e então terminar.

--disable-opencl

Esta opção impede que o darktable inicialize o subsistema OpenCL. Use esta opção caso o darktable trave ao inicializar devido a uma implementação OpenCL com bugs.

--library <arquivo de biblioteca>

O darktable mantém informações das imagens em uma base de dados sqlite para aceso rápido. O local default para essa base de dados é $HOME/.config/darktable/library.db. Você pode dar um local alternativo, por exemplo, se quiser fazer experimentos sem comprometer a library.db original. Se o arquivo com a base de dados não existir, o darktable criará um para você. Você também pode dar :memory: como arquivo de biblioteca, e neste caso a base de dados será mantida em memória - todas as mudanças serão descartadas quando o darktable for fechado.

Sempre que o darktable iniciar, ele irá bloquear a biblioteca do usuário atual. Faz isso escrevendo o identificador do processo corrente (PID) em um arquivo de lock <library file>.lock próximo à biblioteca especificada. Se o darktable encontrar um arquivo de lock para a biblioteca, ele terminará imediatamente.

--datadir <pasta de dados>

Esta opção define a pasta onde o darktable encontra seus dados de tempo de execução. O lugar default depende da sua instalação. Lugares típicos são /opt/darktable/share/darktable/ e /usr/share/darktable/.

--moduledir <pasta de módulos>

O darktable tem uma estrutura modular e organiza seus módulos em bibliotecas compartilhadas que são carregadas em tempo de execução. Com esta opção você diz ao darktable onde procurar essas bibliotecas. O lugar default depende da sua instalação; lugares típicos são /opt/darktable/lib64/darktable/ e /usr/lib64/darktable/.

--tmpdir <pasta tmp>

O lugar onde o darktable guarda seus arquivos temporários. Se esta opção não for determinada, o darktable usa o default do sistema.

--configdir <pasta de configuração>

Esta opção define a pasta onde o darktable guarda as configurações específicas do usuário. O lugar default é $HOME/.config/darktable/.

--cachedir <pasta de cache>

O darktable mantém um cache de miniaturas para pré-visualização rápida de imagens e de binários pré-compilados de OpenCL para inicialização rápida. Por default, o cache fica localizado em $HOME/.cache/darktable/. Pode haver múltiplos caches de miniatura em paralelo, um para cada arquivo de biblioteca.

--localedir <pasta de locale>

O lugar onde o darktable encontra as traduções para linguagens específicas. O lugar default depende de sua instalação. Lugares típicos são /opt/darktable/share/locale/ e /usr/share/locale/.

--luacmd <comando lua>

Uma string contendo comandos lua a executar depois da inicialização de lua. Estes comandos serão efetuados depois da leitura de seu arquivo luarc.

Se Lua não tiver sido compilada, esta opção será aceita mas não terá efeito.

--noiseprofiles <arquivo json de noise profiles>

O arquivo json contendo os perfis de ruídos específicos da câmera. O lugar default depende da sua instalação. Lugares típicos são /opt/darktable/share/darktable/noiseprofile.json e /usr/share/darktable/noiseprofile.json.

--conf <chave de configuração>=<valor>

O darktable suporta um grande conjunto de parâmetros de configuração que o usuário define em darktablerc - o arquivo de configuração do darktable na pasta de configurações do usuário. Você pode temporariamente sobrescrever configurações individuais na linha de comando com esta opção - no entanto, estas configurações não serão armazenadas no darktablerc.

1.1.2. O binário darktable-cli

Este binário inicia a interface de linha de comando do darktable que permite exportar imagens.

Esta variante não abre um display, então funciona em modo de console puro sem usar X11, wayland, etc. - este modo é útil para servidores executando tarefas em background.

darktable-cli é chamado com os seguintes parâmetros de linha de comando:

darktable-cli <input file>|<image folder>
              [<xmp file>]
              <output file>
              [--width <max width>]
              [--height <max height>]
              [--bpp <bpp>]
              [--hq <0|1|true|false>]
              [--upscale <0|1|true|false>]
              [--style <style name>]
              [--style-overwrite]
              [--verbose]
              [--core <darktable options>]

O usuário precisa prover um nome de arquivo de entrada e um nome de arquivo de saída. Todos os outros parâmetros são opcionais.

<arquivo de entrada>

O nome do arquivo de entrada para exportar ou o nome de uma pasta contendo os arquivos de entrada que serão exportados.

<xmp file>

O nome de um arquivo auxiliar XMP contendo a dados da pilha de histórico a ser aplicada durante a exportação. Se esta opção não for dada, o darktable procurará um arquivo XMP que pertença ao(s) arquivo(s) de entrada.

<arquivo de saída>

O nome do arquivo de saída. O darktable deriva o formato do arquivo de saída da extensão do arquivo. Você também pode usar todas as variáveis disponíveis no módulo de exportação no nome do arquivo de saída (veja Seção 2.3.14, “Exportar selecionadas”). Por razões óbvias isto é obrigatório se você usar o programa em uma pasta contendo múltiplas imagens.

--width <largura max>

Este parâmetro opcional permite limitar a largura da imagem exportada a uma quantidade de pixels.

--height <altura max>

Este parâmetro opcional permite limitar a altura da imagem exportada a uma quantidade de pixels.

--bpp <bpp>

Um parâmetro adicional que define a profundidade de bits na imagem exportada; valores permitidos dependem do formato de saída. Atualmente esta opção não está ainda funcional. Se quiser definir a profundidade de bits você precisa usar a seguinte alternativa:

--core
--conf plugins/imageio/format/<FORMAT>/bpp=<VALUE>

Onde <FORMAT> é o nome do formato de saída selecionado.

--hq <0|1|true|false>

Uma flag que determina o uso de resampling de alta qualidade ao exportar (veja ???) O default é verdadeiro.

--upscale <0|1|true|false>

Uma flag que define se aumento de escala é permitido durante a exportação. O default é falso.

--style <nome de estilo>

Especifique o nome do estilo a ser aplicado durante a exportação. Se um estilo é especificado, o caminho da pasta de configuração do darktable também precisa ser especificado (por exemplo, --core --configdir ~/.config/darktable). Por default, nenhum estilo é especificado.

--style-overwrite

O estilo especificado sobrescreve a pilha do histórico ao invés de ser anexado a ela.

--verbose

Habilita saída com informações mais detalhadas.

--core <opções darktable>

Todos os parâmetros de linha de comando depois de --core são passados ao core do darktable e tratados com parâmetros padrão. Veja Seção 1.1.1, “O binário darktable para uma descrição detalhada.

1.1.3. O binário darktable-generate-cache

Este binário atualiza o cache de miniaturas do darktable. Você pode iniciar este programa para gerar todas as miniaturas faltantes no background quando seu computador não estiver processando outras coisas.

darktable-generate-cache é chamado com os seguintes parâmetros de linha de comando:

darktable-generate-cache
              [-h, --help]
              [--version]
              [--min-mip <0-7>] [-m, --max-mip <0 - 7>]
              [--min-imgid <N>] [--max-imgid <N>]
              [--core <darktable options>]

Todos os parâmetros são opcionais. Se iniciado sem parâmetros darktable-generate-cache usa defaults razoáveis.

-h, --help

Mostra informação de uso e termina.

--version

Mostra copyright e versão e termina.

--min-mip <0 - 7>, -m, --max-mip <0 - 7>

O darktable consegue manipular e armazenar miniaturas com até oito diferentes passos de resolução para cada imagem. Estes parâmetros definem que resolução máxima deve ser gerada, e o default é uma faixa de 0-2. Normalmente não há necessidade de gerar todas as possíveis resoluções aqui; as faltantes são automaticamente geradas pelo darktable no momento em que forem necessárias. Quando o darktable recebe instruções para gerar múltiplas resoluções de uma vez, as imagens de menor resolução são rapidamente re-amostradas a partir das com resolução maior.

--min-imgid <N>, --max-imgid <N>

Especifica uma faixa interna de IDs da base de dados para trabalhar. Se nenhuma faixa é dada, darktable-generate-cache processará as imagens da coleção inteira.

--core <opções darktable>

Todos os parâmetros de linha de comando depois de --core são passados ao core do darktable e tratados com parâmetros padrão. Veja Seção 1.1.1, “O binário darktable para uma descrição detalhada.

1.1.4. O binário darktable-chart

Este binário é uma utilidade dedicada à criação de estilos a partir de pares de imagens como RAW+JPEG com processamento em-câmera. Detalhes sobre seu uso podem ser encontrados em Seção 10.3, “Usando o darktable-chart.

darktable-chart inicia uma interface gráfica ou pode ser usado como programa de linha de comando.

darktable-chart
              [--help]
              [<input Lab pfm file>]
              [<cht file>]
              [<reference cgats/it8 or Lab pfm file>]

Todos os parâmetros são opcionais. No entanto, se você quiser suprir o segundo nome de arquivo, deve também incluir o segundo, etc. Iniciar darktable-chart desta forma abre uma interface gráfica especial (detalhes podem ser encontrados em Seção 10.3, “Usando o darktable-chart).

--help

Mostra informação de uso e termina.

<arquivo de entrada Lab pfm>

Abre o utilitário com o arquivo dado como imagem de entrada. A imagem de entrada precisa estar no formato Lab Portable Float Map.

<arquivo cht>

Especifica um arquivo chart descrevendo o layout do cartão de referência de cores.

<reference cgats/it8 ou arquivo Lab pfm>

Especifica os valores de referência, como valores medidos de acordo com o padrão CGATS, ou como uma imagem no formato Lab Portable Float Map.

Alternativamente darktable-chart pode ser usado como programa de linha de comando para gerar arquivos de estilos darktable a partir de arquivos CSV.

darktable-chart
              --csv
              <csv file>
              <number patches>
              <output dtstyle file>

Todos os parâmetros são obrigatórios.

<arquivo csv>

Um arquivo CSV anteriormente gravado a partir de darktable-chart

número patches

O número de patches de cor a ser usado na configuração tabela de cores de cada estilo.

<arquivo saída dtstyle>

O nome do estilo a ser criado.

1.1.5. O binário darktable-cltest

Este binário verifica se existe um ambiente OpenCL em seu sistema que o darktable possa usar. Emite alguma depuração na saída que é equivalente a chamar darktable -d opencl e depois termina.

darktable-cltest é chamado sem parâmetros de linha de comando:

darktable-cltest

1.1.6. O binário darktable-cmstest

Este binário (Linux apenas) verifica se o subsistema de gerenciamento de cores de seu computador está corretamente configurado e mostra algumas informações úteis sobre os perfis de monitor instalados.

darktable-cmstest é chamado sem parâmetros de linha de comando:

darktable-cmstest