首页 文章

Tiff分析仪

提问于
浏览
4

我正在编写一个程序来转换一些数据,主要是一堆Tiff图像 . 一些Tiff似乎对他们有一个小问题 . 它们在一些 Spectator (Irfanview,客户的旧系统)中表现得很好,但在其他 Spectator 中却没有(客户的新系统,Window的图片和传真查看器) . 我手动查看了二进制数据,所有标签看起来都没问题 . 任何人都可以推荐一款可以分析它的应用程序并告诉我它有什么问题吗?

另外,为了清楚起见,我只是将有关图像的数据单独存储在数据库中并复制图像,我不是自己编辑图像,所以我很确定我不会搞砸它们 .

UDPATE: 对于任何有兴趣的人,这里是好文件和坏文件的标签:


标签类型长度值
256图像宽度SHORT 1 1652
257图像长度SHORT 1 704
每个样本258个比特短1 1
259压缩短1 4
262光度学简称1 0
266填写订单简称1 1
273剥离偏移LONG 1 210(d2十六进制)
274方向短期1 3
每像素277个样本SHORT 1 1
278行每条带短1 450
279 Strip Byte Counts LONG 1 7264(1c60 Hex)
282 X分辨率RATIONAL 1 <194> 200/1 = 200.000
283 Y分辨率RATIONAL 1 <202> 200/1 = 200.000
284平面配置简短1 1
296决议单位简称1 2


标签类型长度值
254新子文件类型LONG 1 0(0 Hex)
256图像宽度SHORT 1 1193
257图像长度SHORT 1 788
每个样本258个比特短1 1
259压缩短1 4
262光度学简称1 0
266填写订单简称1 1
270图像说明ASCII 45 256
273剥离偏移长1 1118(45e十六进制)
274方向短1 1
每像素277个样本SHORT 1 1
每条带278行LONG 1 788(314 Hex)
279 Strip Byte Counts LONG 1 496(1f0 Hex)
280分钟样本值SHORT 1 0
281最大样本值简称1 1
282 X分辨率RATIONAL 1 <301> 200/1 = 200.000
283 Y分辨率RATIONAL 1 <309> 200/1 = 200.000
284平面配置简短1 1
293组4选项LONG 1 0(0 Hex)
296决议单位简称1 2

5 回答

  • 0

    通常这是因为tiff使用的是6.0标准的JPEG编码,后来很快就被放弃了 . 看看标签259.如果是6,那就是问题所在 . JPEG应使用“更新”方案进行编码.7 . 标准库不会读取旧的标准库,包括Windows附带的标准库 .

    您可以使用libtiff(或任何使用libtiff的库或程序,大多数都这样做)来读取这些,但是在libtiff中默认禁用方案6(OJPEG) . 您必须修补并重新编译libtiff才能启用它 . Here's a link with instructions .

  • 0

    LibTIFF可能会有所帮助 . 查看Tiff的问题's are often caused by the compression used. I' d调查一下 .

  • 1

    坏图像中的RowsPerStrip是450,小于704,图像长度(高度) . 这意味着图像必须有两个条带 . 因此,StripOffsets和StripByteCounts必须都有两个 . 这些表示条带数据所在的文件偏移量 . 当缺少这些偏移时,只有第一个条带可以解码 .

  • 1

    值得给ImageMagick一个机会 . 我的理解是TIFF是一种相当复杂的文件格式,并不是每个人都完全实现了这种格式 .

  • 3

    TIFF是一种非常复杂的格式 - 不仅在于它可以编码的数据的丰富程度(各种像素格式,各种编码器) - 而且还因为文件格式本身的丰富性(它可以容纳任何东西的一般结构) . 对于我们在成像过程中所拥有的每一个想法,它基本上是垃圾堆 . :-)

    我强烈推荐.NET 3.0中的WPF Imaging库 . 它的Tiff解码器虽然不支持所有像素格式,但它非常强大,并且具有访问所有元数据的简单界面 .

相关问题