我创建了一个c#函数,它将BitmapFrame图片移动到byte [](使用copypixels)。然后我将这个缓冲区粘贴到c ++ dll中,它是uint8 *。 cpp中有一个结构
typedef struct
{
float r;
float g;
float b;
} pixel;
是否可以为这个uint8 *缓冲区组织一个循环来逐个像素地获取(例如x y - 图像的高度和宽度(这个数据我也有))?
之类的东西for(i=0; i< height;i++)
{
for(j=0; j <width;j++)
{
SomeWorkWithPixelsfromUint8(i,j) //???
}
}
SomeWorkWithPixelsfromUint8(i,j)可以操作RGB结构
如此简单的uint8 - &gt; getPixel(x,y)????
答案 0 :(得分:1)
假设您的图片数据有这样的布局
uint8_t* picData = ...;
uint8_t* pixel = picData;
for(int i = 0; i < height; ++i) {
for(int j = 0; j < width; ++j, pixel += pixelSize) {
float r = pixel[0];
float g = pixel[1];
float b = pixel[2];
// Do something with r, g, b
}
}