使用OpenGL读取图像字节数组

时间:2011-09-04 23:08:58

标签: c++ opengl image-processing

我有一个位图图像,当前表示为字节数组(可能是YCrCb或RGB)。是否有一个内置OpenGL的函数可以让我查看这个字节数组中的各个像素?

我知道有函数glReadPixels但是如果我已经有了数据,我不需要从帧缓冲区读取。

如果没有,是否有其他方法可以在C ++中执行此操作?

1 个答案:

答案 0 :(得分:6)

OpenGL是一个绘图API,而不是某种通用图形库 - OpenGL 中的'L'表示 应该作为Layer读取,而不是库。

话虽如此:如果你知道字节数组的尺寸和数据布局,那么获取单个像素是微不足道的。

pixel_at(x,y) = data_byte_array[row_stride * y + pixel_stride * x]

采用紧凑的格式

pixel_stride = bytes_per_pixel
row_stride = width * pixel_stride