繁体   English   中英

从uint8 c ++获取RGB像素值

[英]get RGB pixel values from uint8 c++

我创建了一个ac#函数,将BitmapFrame图片移动到byte [](使用copypixels)。 然后,我将此缓冲区粘贴到uint8 *所在的c ++ dll中。 cpp中有一个结构

typedef struct  
{
    float r;
    float g;
    float b;
} pixel;

是否可以为此uint8 *缓冲区组织一个循环以逐像素获取(例如,按xy-图像的高度和宽度(我也有此数据))? 就像是

for(i=0; i< height;i++)
{
for(j=0; j <width;j++)
{
   SomeWorkWithPixelsfromUint8(i,j) //???
}
}

来自Uint8(i,j)的SomeWorkWithPixels可以操作RGB结构的地方

如此简单的uint8-> getPixel(x,y)????

假设您的图片数据具有这样的布局

  • 像素是每条扫描线的扫描线,从左到右
  • 一个像素打包为RGB或最终RGBA
  • 您使用每个像素的pixelSize字节(可能为3,如果您使用Alpha通道,则可能为4)

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
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM