【问题标题】:how to get colors by glreadpixels?如何通过 glreadpixels 获取颜色?
【发布时间】:2012-08-16 12:22:34
【问题描述】:

我正在尝试在 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));

【问题讨论】:

    标签: android opengl-es-2.0 glreadpixels picking ray-picking


    【解决方案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 行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-10
      • 1970-01-01
      • 2014-07-20
      • 1970-01-01
      • 2014-01-03
      • 2016-04-15
      • 2014-11-03
      • 2015-09-19
      相关资源
      最近更新 更多