Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将16位红外数据转换为C/C中有意义的数据_Objective C_C_Arrays_Pointers - Fatal编程技术网

Objective c 将16位红外数据转换为C/C中有意义的数据

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

我有一个API,可以从文件中返回16位红外数据。 用法如下:

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;wdataArray[w][h]=irDataSource[byteNum]如何声明
irDataSource
?为什么dataPointer声明为int*而不是UInt16*?
int dataArray[width][height]
宽度
高度
常量/文字值吗?这些值是什么?您需要知道
int
没有定义的宽度,但随Xcode的版本而变化。在某个时候,您需要将这些数据转换为UIImage可以接受的内容—PNG或JPEG。它可能是b直接使用图形缓冲区更好,因为您可以直接输入像素贴图。(但我不能马上给您一个参考。)谢谢大家的帮助。@Hotlicks:您的图形链接确实有帮助。