gpt4 book ai didi

java - 在 Java 中读取缓冲区

转载 作者:行者123 更新时间:2023-11-30 11:50:36 26 4
gpt4 key购买 nike

我需要一点手来阅读由 android 的 opengl-es api 中的 glReadPixels 功能吐出的缓冲区。到目前为止,这是我的代码...

public static void pick(GL11 gl){
int[] viewport = new int[4];
IntBuffer pixel = IntBuffer.allocate(384000);

mColourR = BaseObject.getColourR();
mColourG = BaseObject.getColourG();
mColourB = BaseObject.getColourB();

x = MGLSurfaceView.X();
y = MGLSurfaceView.Y();

gl.glGetIntegerv(GL11.GL_VIEWPORT,viewport,0);

gl.glReadPixels((int)x,viewport[3]-(int)y, 1, 1, GL11.GL_RGB, GL11.GL_UNSIGNED_BYTE, pixel);


}

此代码中输出缓冲区的名称是“pixel”,我需要向此代码添加什么才能从“pixel”缓冲区中获取颜色值。

最佳答案

您可以使用 get() methods 之一IntBuffer 访问单个值。

RGB 颜色值通常按此顺序存储,因此调用 pixel.get(0) 将为您获取第一个像素的红色值,pixel.get(1) 会让你进入绿色 channel 等等。通常,值按行存储。

因此,如果您需要特定像素 (x,y) 的值,则必须调用 get(screenWidth*3*y + x)

顺便说一下,您可以通过调用 pixels.array()

IntBuffer 中检索原始 int 数组

关于java - 在 Java 中读取缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7891525/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com