首页 文章

读取TIFF文件

提问于
浏览
0

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

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

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

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

提前感谢您的提示!

问候,

斯特凡

1 回答

  • 1

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

相关问题