我正在尝试将10位值(具有高动态范围的图像)写入char *
数组。所以,如果我有一个大小为10 x 10
的图像,我将数组指定为:
char * buffer = [10 * 10 * 2];
这个想法是每个像素可以存储在2个字节中。现在,在我的设备上,我有一个API调用,可以读取图像的一行。即我可以做类似的事情:
for(int i = 0; i < 10; ++i)
{
char * current = &buffer[i * 10 * 2];
read_line(current);
// Map to 10-bit here...
}
现在,此函数读入字节流。如何确保每个2字节字正确映射到10位值,这样当我将此数组设置为short
类型时,每个值都是0-1023之前的10位像素值。
答案 0 :(得分:3)
你不能。行的格式由read_line
函数决定。您需要阅读此函数的文档以找出它使用的格式,然后使用一些小问题将您获得的值转换为内部格式。
或以其他方式决定该功能使用的格式优于您的内部格式,并转换您的程序直接使用它。