读取TIFF文件

时间:2012-09-29 22:07:32

标签: image-processing tiff

我需要阅读并解释包含TIFF图像的二进制文件。我知道有读者这样做,但我想走得很远。我找到了TIFF格式的描述,需要以小块的形式解析二进制文件。假设我能够在内存中读取完整的二进制文件。这意味着我有一个包含一个长字节列表的变量。 我通过格式定义知道了n个字节的不同组的含义。

如何定义具有不同长度的字符变量(有时为2,有时为3,有时为4等),以便变量地址指向图像变量数组中的正确位置?

换句话说,假设我的图像被加载到包含文件所有字节的数组Image中。 我想要在长度为2个字节的字符串中加载前2个字节,以便我可以将地址指针链接到Image数组中的第一个位置,并自动将前2个字节与第一个字符串相关联。第二个4字节的字符串将具有另一种含义,因此我将第二个4字节字符串的地址指向Image数组的第3个位置。

这在C ++中是否可行?我记得在很久以前我分析的模拟代码中,这是Fortran 77中动态内存分配的正常工作方式。

提前感谢提示!

此致

Stefan

1 个答案:

答案 0 :(得分:1)

C ++语言很容易从字节数组中处理TIFF文件。你想到的想法基本上是正确的,但它有一些问题。 C字符串是零终止的,并且出现在TIFF文件中的字符串不一定是零终止,因为它们的长度是明确指定的。创建专用数据结构以保存特定于TIFF的数据字段然后将二进制数据解析到结构中确实更简单。如果您的机器具有相反的字节序,您的方法将立即遇到摩托罗拉/英特尔字节问题。