打开或操纵Jpeg2000压缩的Tiff

时间:2019-01-30 15:21:51

标签: .net image image-processing

我正在构建一个处理单页tif(f)文件并使用PDFSharp将其批处理为pdf文件的应用。某些文件将在其中打开或处理但仅以黑页形式出现问题。似乎仅限于灰度或彩色图像。我知道它们没有损坏,因为它们在第三方ISV应用程序中打开。但是,它们似乎是使用相当模糊的算法压缩的。到目前为止,我已经尝试-失败-用以下方法打开它们:

  1. 每个内置的Windows图像查看器
  2. IfranViewer
  3. ImageMagick
  4. Faststone
  5. PhotoShop

当我运行ImageMagick Identify命令时,我得到以下信息:

  

识别:不支持压缩

到目前为止,我唯一能找到的可以打开它们的是Brava!Desktop。但是,这是一个商业应用程序,似乎不接受用于自动执行此转换过程的命令-这正是我所需要的。

有人知道这是什么格式,或者如何在.net中正确呈现它。

编辑

其他EXIFTOOL信息exiftool.exe Black.tif -v 5也谢谢fmw42吸引我注意该工具!:

| 0)  SubfileType = 2
| 1)  ImageWidth = 2534
| 2)  ImageHeight = 3323
| 3)  BitsPerSample = 8 8 8
| 4)  Compression = 34712
| 5)  PhotometricInterpretation = 2
| 6)  StripOffsets = 228
| 7)  Orientation = 1
| 8)  SamplesPerPixel = 3
| 9)  RowsPerStrip = 3323
| 10) StripByteCounts = 11742587
| 11) XResolution = 300 (300/1)
| 12) YResolution = 300 (300/1)
| 13) PlanarConfiguration = 1
| 14) ResolutionUnit = 2
| 15) PageNumber = 0 0

1 个答案:

答案 0 :(得分:1)

尝试(使用Python):

  1. tifffile(已安装imagecodecs)可以将图像读取到numpy数组中,然后可以对其进行进一步处理:

    from matplotlib import pyplot
    import tifffile
    im = tifffile.imread('black.tif')
    pyplot.imshow(im)
    pyplot.show()
    
  2. 以二进制模式打开文件,尝试获取StripOffsets,读取StripByteCounts字节,然后将缓冲区写入.jp2文件,该文件可以用IrfanView等打开:

    with open('black.tif', 'rb') as fh:
        fh.seek(228)
        im = fh.read(11742587)
    with open('black.jp2', 'wb') as fh:
        fh.write(im)