1

我正在尝试使用 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
4

0 回答 0