代码基本取自dcraw(www.cybercom.net/~dcoffin/dcraw/) 做了一些修改和整理
//首先定义一些必须的全局变量和一些有用的函数,主要是读取各种数据类型的函数
short order;
FILE *ifp = ifp = fopen ("filename.tiff", "rb");
ushort CLASS sget2 (uchar *s)
{
if (order == 0x4949) /* "II" means little-endian */
return s[0] | s[1] << 8;
else /* "MM" means big-endian */
return s[0] << 8 | s[1];
}
ushort CLASS get2()
{
uchar str[2] = { 0xff,0xff };
fread (str, 1, 2, ifp);
return sget2(str);
}
unsigned CLASS sget4 (uchar *s)
{
if (order == 0x4949)
return s[0] | s[1] << 8 | s[2] << 16 | s[3] << 24;
else
return s[0] << 24 | s[1] << 16 | s[2] << 8 | s[3];
}
#define sget4(s)