【发布时间】:2015-07-29 20:08:33
【问题描述】:
如何获取 RGBA 纹理的像素颜色?假设我有这样的功能:
public Color getPixel(int x, int y) {
int r = ...
int g = ...
int b = ...
int a = ...
return new Color(r, g, b, a);
}
我很难使用glGetTexImage() 工作;
int[] p = new int[size.x * size.y * 4];
ByteBuffer buffer = ByteBuffer.allocateDirect(size.x * size.y * 16);
glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
buffer.asIntBuffer().get(p);
for (int i = 0; i < p.length; i++) {
p[i] = (int) (p[i] & 0xFF);
}
但我不知道如何访问具有给定坐标的像素。
【问题讨论】: