我有一个位图图像,当前表示为字节数组(可能是YCrCb或RGB)。是否有一个内置OpenGL的函数可以让我查看这个字节数组中的各个像素?
我知道有函数glReadPixels但是如果我已经有了数据,我不需要从帧缓冲区读取。
如果没有,是否有其他方法可以在C ++中执行此操作?
答案 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