【发布时间】:2010-07-22 15:20:32
【问题描述】:
我正在尝试读取具有关联的 ANN 文件的 TIFF 文件。 tiff 不使用标准查看器打开。当我打开二进制 ANN 文件时,我唯一能理解的是它是使用 Pixel Translations Inc. 的软件创建的,采用 PIXTIFF 格式。
有谁知道如何手动或以编程方式查看此文件?有什么免费软件可以用作查看器吗?
谢谢!
【问题讨论】:
标签: file image image-processing
我正在尝试读取具有关联的 ANN 文件的 TIFF 文件。 tiff 不使用标准查看器打开。当我打开二进制 ANN 文件时,我唯一能理解的是它是使用 Pixel Translations Inc. 的软件创建的,采用 PIXTIFF 格式。
有谁知道如何手动或以编程方式查看此文件?有什么免费软件可以用作查看器吗?
谢谢!
【问题讨论】:
标签: file image image-processing
为了全面披露,我是 Atalasoft 的一名员工。
由于这篇文章,我们有一家公司与我们联系,我想帮助尽可能多的可能遇到相同问题的人。
公司拥有内部识别为 PIXTIFF 的文件。出现的特定字符串是“Pixel Translations Inc., PIXTIFF Version”和一个版本号。但是,这些文件在 tiff 标头之前有几百字节,导致它们无法在标准查看器中打开。
我在寻找有效的 tiff 时确实找到了另一组文件,以使用相同的 PIXTIFF 字符串进行参考,这些 PIXTIFF 字符串已经在工作 tiff。我不能说是有人已经“修复”了它们,还是非标准流程创建了这家公司的集合。
因此,如果您确实发现您有这些 PIXTIFF 二进制文件,请先检查它们是否是有效的 tiff,然后再继续。复制一份,给它一个 .tif 扩展名,然后使用IrfanView 之类的东西尝试打开它。
查看Tiff header spec:Tiff 文件以 II* (0x49 0x49 0x2A 0x00) 或 MM* (0x4D 0x4D 0x2A 0x00) 开头,然后是从文件开头到第一个图像目录的偏移量。 (尽管根据我的经验,大端 MM 顺序很少见。)
可以通过剥离 tiff 标头之前的所有数据来修复有问题的文件。相对于 tiff 标头,偏移量已经正确。
我已经包含了一个快速的 C# 示例,说明我曾经在本地执行此操作。用您选择的语言实现这一点应该非常简单。
注意:Stream.CopyTo 仅在 .Net 4.0 及更高版本中可用。这也仅纠正了两个可能的标头之一,但它确实修复了手头的所有文件。
byte[] header = { 0x49, 0x49, 0x2A, 0x00 };
int found = 0;
string filename = @"fileToFix";
using (Stream fileToFix = File.OpenRead(filename))
{
while (found < 4 && fileToFix.Position < fileToFix.Length)
{
if (header[found] == fileToFix.ReadByte())
found++;
else
found = 0;
}
if (found != 4) //Didn't find a tiff.
return;
fileToFix.Seek(-4, SeekOrigin.Current); //We're already 4 bytes in the the header, go back.
using (Stream fixedFile = File.OpenWrite(Path.Combine(Path.GetDirectoryName(filename), Path.GetFileNameWithoutExtension(filename) + ".fixed.tif"))) //Same directory, same name but ending in .fixed.tif.
fileToFix.CopyTo(fixedFile);
}
【讨论】:
Altalasoft 成像产品可以读取(和创建)这些文件。
此外,您通常可以使用标准 Windows Imaging SDK 甚至标准 GDI+ 库来读取 TIFF 文件。 (或者,.NET System.Windows.Drawing 库。)
一些 PIXTIFF tif 文件是“类型 6”并使用 JPEG 压缩。我发现可以阅读这些内容的最佳库是 LibTiff 库(或 .NET 版本,BitMiracle 的 LibTiff.net:http://bitmiracle.com/libtiff/)。
【讨论】:
这是很久以前的事了,但从 1995 年到 2000 年,我担任 Pixel 翻译的开发人员支持主管。.ANN 文件包含要覆盖在图像顶部的注释(标记或编辑)。如果您无法使用上面的代码打开文件,请尝试通过像素转换找到名为 PixView 的应用程序的副本。它可以读取文件并打开注释。它起源于开发人员的示例应用程序,源代码可能在某处。我认为 emc/dell 现在拥有它。
【讨论】: