创建 1 位黑白 TIFF 图像时,如何强制“sips”采用白色为 0?

创建 1 位黑白 TIFF 图像时,如何强制“sips”采用白色为 0?

sips是一个在 Mac OS X 和 BSD Unix 上处理图像的命令行工具。 sips代表可编写脚本的图像处理系统。

我有一个 1 位黑白未压缩 TIFF 图像。以下sips命令使用 LZW 压缩对其进行压缩。

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

然而,当在特定查看器上显示时,生成的 TIFF 图像会出现黑白反转。这种反演与“光度解释”相关,如下所述。

黑白图像中的每个像素都由一位表示。 1 位 TIFF 图像没有调色板,只能是黑白的。 “开”位和“关”位可以表示黑色或白色,具体取决于 TIFF 图像的光度标签 (ID262)。黑白 TIFF 图像的典型光度方向为 0 = 白色,1 = 黑色,对应光度标签值为 0。相反,0 = 黑色,1 = 白色对应光度标签值为 1。图像查看器完全忽略光度标签,始终假设 0 = 白色,尤其是 Windows XP 图像查看器。 (来源:atalasoft /KB/article.aspx?id=10069)

黑白颠倒是因为观看者更喜欢将白色设为 0,而sips在生成 TIFF 图像时则将白色设为 1。

输入文件sample.tif 的白色为0。
输出文件lzw.tif 的白色为1。

要检查白色是0还是1(或者0是白色还是黑色),即“光度解释”是0还是1,至少可以采用以下两种方法。

使用exiftool,可以从 http://owl.phy.queensu.ca/~phil/exiftool/

exiftool -S lzw.tif -PhotometricInterpretation

或者Preview.app在 Mac OS X 上使用。

Tools > Show Inspector (Command-I) > TIFF

sips我的问题:创建 1 位黑白 TIFF 图像时如何强制使用白色为 0?

正如我所说,我有一个 1 位黑白未压缩 TIFF 图像。事实上,我有几千个这样的。因此,我不需要在 GIMP 或 Photoshop 上手动处理它们,而是需要一个命令行工具来自动化该过程。

如果不能做我想做的事,那么我可能会发布一个新问题,询问一个 在 Mac OS X 上运行的sips命令行工具; - 拍摄 1 位黑白未压缩 TIFF 图像; - 输出 1 位黑白 LZW 压缩 TIFF 图像,其中白色为 0。


(我的默认 shell 是 bash。)

同时,我会等着看是否sips可以。

作为示例图像,我尝试上传 1 位黑白未压缩 TIFF 图像,该图像由白色背景上的黑色字母组成,其光度解释为 0 (WhiteIsZero)。然而,stackexchange 的图像上传机制会自动将 TIFF 转换为 PNG。
在此输入图像描述

sips本文顶部附近的命令采用未压缩的 TIFF 并输出 LZW 压缩的 TIFF 。以下sips命令采用 PNG 并输出 LZW 压缩的 TIFF。

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

此生成的 TIFF 图像 Cqdg2.tif 与早期生成的 TIFF 图像 lzw.tif 在反演和光度解释方面存在相同的问题。

答案1

可能大多数人会建议您使用 ImageMagick,据我所知,它可用于 Mac OS X。在 Linux 上,我按如下方式使用它来生成与您问题中的图像类似的 tiff 图像,并操作它以提供压缩版本:光度选项。创建初始图像:

$ 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, ...

根据需要压缩并更改颜色-negate或光度:-define quantum:...

$ 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, ...

相关内容