Как получить цвета по glreadpixels?
Я пытаюсь получить цвет точки касания на экране в Android. но он показывает мне только RGB = (0, 0, 0) значение. Я искал другие сайты. он сказал, что я должен добавить некоторые коды ниже, но это ничего не изменило.
getHolder().setFormat(PixelFormat.TRANSLUCENT);
setEGLConfigChooser(8,8,8,8,0,0);
поэтому любые советы будут оценены спасибо заранее.
ByteBuffer PixelBuffer = ByteBuffer.allocateDirect(4);
PixelBuffer.order(ByteOrder.nativeOrder());
PixelBuffer.position(0);
int mTemp = 0;
GLES20.glReadPixels(touchX, touchY, 1, 1, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, PixelBuffer);
byte b[] = new byte[4];
PixelBuffer.get(b);
tmp = String.valueOf(String.format("RED : %d GREEN %d BLUE %d", PixelBuffer.get(0), PixelBuffer.get(1), PixelBuffer.get(2)));
tmp += String.valueOf(String.format("RED : %d GREEN %d BLUE %d", b[0], b[1], b[2]));
Log.e("COLOR", "R:" + PixelBuffer.get(0) + PixelBuffer.get(1) + PixelBuffer.get(2));
1 ответ
Вы использовали openGL для рисования экрана или просто обычное приложение? Если вы используете openGL, то используете ли вы OpenGL 2.0 или 1.x для рисования экрана? Поддерживаете ли вы телефон OpenGLES 2.0? Я вижу, что они не очень поддерживают устройство. Вы можете проверить http://code.google.com/p/libgdx/ исходный код, у них есть несколько примеров получения пикселей FramBuffer.
Например, строка "libgdx\extensions\gdx-tools\src\com\badlogic\gdx\tools\hiero\BMFontUtil.java" 176.