Como forçar “goles” a adotar o branco como 0 ao criar uma imagem TIFF em preto e branco de 1 bit?

0

sips é uma ferramenta de linha de comando para processar imagens no Mac OS X e no BSD Unix. sips significa Sistema de Processamento de Imagens com Script.

Eu tenho uma imagem TIFF não-compactada em preto e branco de 1 bit. O seguinte comando sips comprime-o com a compactação LZW.

sips -s format tiff -s formatOptions lzw sample.tif --out lzw.tif

No entanto, a imagem TIFF resultante tem preto e branco invertido quando exibido em um determinado visualizador. Esta inversão está relacionada com a "Interpretação Fotométrica", conforme explicado abaixo.

Each pixel in a Black and White image is represented by a single bit. A 1-bit TIFF image has no palette, and can only be black and white. An "on" bit and an "off" bit can represent either black or white depending on the photometric tag (ID262) of the TIFF image. The typical photometric orientation of a black and white TIFF image is 0 = White and 1 = Black, which corresponds to a photometric tag value of 0. The opposite, 0 = Black, 1 = White corresponds to a photometric tag value of 1. Some image viewers ignore the photometric tag completely always assuming 0 = White, most notably the Windows XP Image Viewer. (source: atalasoft /KB/article.aspx?id=10069)

Preto e branco é invertido porque o espectador prefere que branco seja 0, enquanto sips usa branco como 1 ao gerar a imagem TIFF.

O arquivo de entrada sample.tif tem branco como 0.
O arquivo de saída lzw.tif tem branco como 1.

Para verificar se o branco é 0 ou 1 (ou se 0 é branco ou preto), ou seja, se "Interpretação Fotométrica" é 0 ou 1, pelo menos os dois métodos a seguir estão disponíveis.

Use exiftool , que pode ser obtido em link

exiftool -S lzw.tif -PhotometricInterpretation

Ou use Preview.app no Mac OS X.

Tools > Show Inspector (Command-I) > TIFF

Minha pergunta: Como sips pode ser forçado a usar branco como 0 ao criar uma imagem TIFF em preto e branco de 1 bit?

Como eu disse, tenho uma imagem TIFF não-compactada em preto e branco de 1 bit. Na verdade, tenho milhares desse tipo. Assim, em vez de processá-los manualmente no GIMP ou no Photoshop, eu preciso de uma ferramenta de linha de comando para automatizar o processo.

Se sips não puder fazer o que eu quero, talvez postarei uma nova pergunta solicitando uma ferramenta de linha de comando para a qual - roda no Mac OS X; - tira uma imagem TIFF não-comprimida em preto e branco de 1 bit; - produz uma imagem TIFF de 1 bit em preto e branco com compressão LZW com branco como 0.

(Meu shell padrão é bash.)

Enquanto isso, esperarei para ver se sips pode.

Como imagem de amostra, estou tentando carregar uma imagem TIFF não-compactada em preto e branco de 1 bit, que consiste em letras pretas em fundo branco e cuja Interpretação Fotométrica é 0 (WhiteIsZero). No entanto, o mecanismo de upload de imagens em stackexchange converte automaticamente o TIFF em PNG.

O comando sips próximo à parte superior desta postagem usa um TIFF não compactado e gera um TIFF compactado por LZW. O comando sips a seguir usa um PNG e gera um TIFF compactado por LZW.

sips -s format tiff -s formatOptions lzw Cqdg2.png --out Cqdg2.tif

Esta imagem TIFF resultante Cqdg2.tif tem o mesmo problema que a anterior imagem TIFF resultante lzw.tif relativa à inversão e à Interpretação Fotométrica.

    
por i7pj3qnuz 07.10.2017 / 17:49

1 resposta

0

Provavelmente, a maioria das pessoas recomendará o uso do ImageMagick, que eu entendo que esteja disponível para o Mac OS X. No Linux, usei-o da seguinte forma para gerar uma imagem tiff similar à da sua pergunta e para manipulá-la. versão comprimida com a opção Fotométrica. Crie a imagem inicial:

$ convert -size 200x200 -depth 1 -gravity center -negate \
   label:UNIX a.tif 
$ file a.tif
a.tif: TIFF image data, little-endian, ... bps=1, \ 
 compression=none, PhotometricIntepretation=BlackIsZero, ...

Compacte e altere as cores com -negate ou o Fotométrico com -define quantum:... conforme necessário:

$ convert a.tif -define quantum:polarity=min-is-black -compress lzw b.tif
$ file b.tif
b.tif: ... compression=LZW, PhotometricIntepretation=BlackIsZero, ...

$ convert a.tif -define quantum:polarity=min-is-white -compress lzw b.tif
$ file b.tif
b.tif: ... compression=LZW, PhotometricIntepretation=WhiteIsZero, ...
    
por 07.10.2017 / 18:48

Tags