gpt4 book ai didi

java - Jogl 中的 ReadPixel

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:12 25 4
gpt4 key购买 nike

谁能告诉我如何在 JOGL 中从缓冲区中读取像素。请用代码说明。

最佳答案

渲染完成后,调用这个方法:

public BufferedImage toImage(GL gl, int w, int h) {

gl.glReadBuffer(GL.GL_FRONT); // or GL.GL_BACK

ByteBuffer glBB = ByteBuffer.allocate(3 * w * h);
gl.glReadPixels(0, 0, w, h, GL.GL_BGR, GL.GL_BYTE, glBB);

BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
int[] bd = ((DataBufferInt) bi.getRaster().getDataBuffer()).getData();

for (int y = 0; y < h; y++) {
for (int x = 0; x < w; x++) {
int b = 2 * glBB.get();
int g = 2 * glBB.get();
int r = 2 * glBB.get();

bd[(h - y - 1) * w + x] = (r << 16) | (g << 8) | b | 0xFF000000;
}
}

return bi;
}

关于java - Jogl 中的 ReadPixel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4173420/

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