2

我的 C# 应用程序以 TWSX_FILE 模式从 KOFAX VRS TWAIN 驱动程序接收图像文件,但我自己的基于 .NET 的应用程序和 Windows 默认图像查看器都无法打开这些文件。但是,Adobe Photoshop 可以毫无问题地打开它们。我尝试了 FreeImage 库,虽然它可以正确检测它们的尺寸,但它会呈现黑色图像。似乎 KOFAX 有某种自己的位图格式,其标题与普通 bmp 文件不同: http ://www.fileformat.info/mirror/egff/ch03_03.htm 我在这里上传了这些文件之一: http: //www.box.net/shared/aby42aagz4 我想知道如何在我的应用程序中打开这些图像,有人知道任何支持这种图像格式的轻量级开源/免费库或 C++/C# 代码片段吗?

4

1 回答 1

2

您基本上已经回答了自己的问题:该文件既不是 Windows 位图文件,也不是记录在案的 Kofax 光栅格式。

正如您所指出的,前两个字节是“BM”,这表明该文件声称是 Windows 位图。但是,如果情况确实如此,那么接下来的四个字节将包含文件大小。在您的示例文件中,接下来的四个字节包含一个比实际文件大小大得多的值,因此它不能被正确解释为 Windows 位图文件。

正如您链接到的 fileformat.info 站点所述,如果该文件确实是 Kofax 光栅格式,它将以字节“68464B2Eh”开头。因此,您的文件也不是 Kofax 光栅格式。事实上,我尝试用 Kofax 的 VCDemo 软件打开它,得到以下错误:“错误 20204 - 内部无效状态”

因此,Kofax 自己的软件认为该文件已损坏。

Photoshop 可以打开它并显示某些内容这一事实并不一定意味着它是一种有效的图像文件格式。图像处理软件包通常会简单地尝试猜测解释文件的原始字节。有时他们很幸运,有时却没有。

试图找到可以读取文件的东西假定文件是标准格式,但事实并非如此。因此,我不会搜索可以读取文件的内容,而是搜索为什么您使用的 VRS/TWAIN 配置会生成非标准格式。

于 2011-02-23T18:30:57.317 回答