Objective c 将16位红外数据转换为C/C中有意义的数据
我有一个API,可以从文件中返回16位红外数据。 用法如下:Objective c 将16位红外数据转换为C/C中有意义的数据,objective-c,c,arrays,pointers,Objective C,C,Arrays,Pointers,我有一个API,可以从文件中返回16位红外数据。 用法如下: UInt16*irDataResult=IrbGetIrData16([self.path UTF8String]) 指针指向的数据长度为:1024x768x2 我想把它转换成一个int二维数组,这样我就有了单独的像素,然后我就可以使用UIImage函数中的一个来用我的原始数据创建图像。 我的做法是: int dataArray[width][height]; int *dataPointer = &dataArra
UInt16*irDataResult=IrbGetIrData16([self.path UTF8String])代码>
指针指向的数据长度为:1024x768x2
我想把它转换成一个int二维数组,这样我就有了单独的像素,然后我就可以使用UIImage函数中的一个来用我的原始数据创建图像。
我的做法是:
int dataArray[width][height];
int *dataPointer = &dataArray[0][0];
int byteNum = 0;
for (int w = 0; w < width; w++) {
for (int h = 0; h < height; h++) {
dataArray[w][h] = irDataSource[byteNum] <<0 | irDataSource[byteNum] << 8; //Little endian
byteNum++;
}
}
int数据数组[宽度][高度];
int*dataPointer=&dataArray[0][0];
int byteNum=0;
对于(int w=0;w dataArray[w][h]=irDataSource[byteNum]如何声明irDataSource
?为什么dataPointer声明为int*而不是UInt16*?int dataArray[width][height]
是宽度
和高度
常量/文字值吗?这些值是什么?您需要知道int
没有定义的宽度,但随Xcode的版本而变化。在某个时候,您需要将这些数据转换为UIImage可以接受的内容—PNG或JPEG。它可能是b直接使用图形缓冲区更好,因为您可以直接输入像素贴图。(但我不能马上给您一个参考。)谢谢大家的帮助。@Hotlicks:您的图形链接确实有帮助。