我正在尝试使用 tesseract 可以处理的 RMagick 编写 TIFF 图像。如果每像素位数 > 32 或每像素样本不是 1、3 或 4,则为 Tesseract 对象。
使用默认值,Image.write
生成 3 个 (RGB) 样本和 1 个 alpha 通道,每个样本 16 位,每个像素总共 64 位,违反了第一个约束。
如果我将色彩空间设置GRAYColorspace
如下,它仍然会输出 alpha 通道,每个像素提供两个样本,这违反了第二个约束。
Image.write('image.tif) {self.colorspace = GRAYColorspace}
根据RMagick 文档,除非指定,否则方法操作会忽略 alpha 通道,但即使我这样做self.channel(GREYChannel)
了,alpha 通道仍会输出。
我知道之后我可以convert
在文件上运行,但我想找到一个避免这种情况的解决方案。
这是tiffinfo
当前生成的文件的输出:
偏移量 0x9c48 (40008) 处的 TIFF 目录
Image Width: 100 Image Length: 100
Bits/Sample: 16
Compression Scheme: None
Photometric Interpretation: min-is-black
Extra Samples: 1<unassoc-alpha>
FillOrder: msb-to-lsb
Orientation: row 0 top, col 0 lhs
Samples/Pixel: 2
Rows/Strip: 20
Planar Configuration: single image plane
Page Number: 0-1
DocumentName: image-gray-colorspace.tif
White Point: 0.3127-0.329
PrimaryChromaticities: 0.640000,0.330000,0.300000,0.600000,0.150000,0.060000