我正在尝试将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位像素值。
发布于 2017-07-10 21:03:50
不能。行的格式由read_line函数决定。您需要阅读此函数的文档以找出它使用的格式,然后使用一些小技巧将您获得的值转换为您的内部格式。
或者决定函数使用的格式比内部的格式更好,并将您的程序转换为直接使用它。
https://stackoverflow.com/questions/45012771
复制相似问题