【问题标题】:How to use glReadPixels to read pixels to bitmap in Android NDK?如何使用 glReadPixels 在 Android NDK 中读取像素到位图?
【发布时间】:2021-10-26 03:27:34
【问题描述】:

我使用 glReadPixels 将像素数据读取到位图,并得到错误的位图。 主要代码是吹:

jni代码

jint size = width * height * 4;

        GLubyte *pixels = static_cast<GLubyte *>(malloc(size));
glReadPixels(
            0,
            0,
            width,
            height,
            GL_RGBA,
            GL_UNSIGNED_BYTE,
            pixels
)

kotlin 代码

val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
                var dataBuf = ByteBuffer.wrap(pixels)
                dataBuf.rewind()
                bitmap.copyPixelsFromBuffer(dataBuf)

然后得到错误的位图,比如吹

正确的应该是这样的

谁能告诉我哪里错了?

【问题讨论】:

    标签: opengl-es


    【解决方案1】:

    原因是纹理被旋转了,读取像素的排序发生了变化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-02
      • 1970-01-01
      • 2011-08-29
      • 1970-01-01
      • 1970-01-01
      • 2015-04-14
      • 1970-01-01
      相关资源
      最近更新 更多