简体   繁体   中英

Reading image byte array with OpenGL

I have a bitmap image that is currently represented as a byte array (could be YCrCb or RGB). Is there a function build in to OpenGL that will allow me to looks at individual pixels from this byte array?

I know that there is the function glReadPixels but I don't need to be reading from the frame buffer if I've already got the data.

If not, is there an alternative way to do this in C++?

OpenGL is a drawing API, not some kind of all purpose graphics library – The 'L' in OpenGL means should be read as Layer, not library.

That being said: If you know the dimensions of the byte array, and the data layout, then it is trivial to fetch individual pixels.

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

in a tightly packed format

pixel_stride = bytes_per_pixel
row_stride = width * pixel_stride

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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