android - 将 OpenGL RGBA 字节数组转换为 android ARGB 字节数组
问题描述
我可以使用以下代码实现将 OpenGL RGBA int 数组转换为 android ARGB int 数组。
int b[]=new int[(int) (w*h)];
int bt[]=new int[(int) (w*h)];
IntBuffer buffer=IntBuffer.wrap(b);
buffer.position(0);
GLES20.glReadPixels(0, 0, w, h,GLES20.GL_RGBA,GLES20.GL_UNSIGNED_BYTE, buffer);
for(int i=0; i<h; i++)
{
//remember, that OpenGL bitmap is incompatible with Android bitmap
//and so, some correction need.
for(int j=0; j<w; j++)
{
int pix=b[i*w+j];
int pb=(pix>>16)&0xff;
int pr=(pix<<16)&0x00ff0000;
int pix1=(pix&0xff00ff00) | pr | pb;
bt[(h-i-1)*w+j]=pix1;
}
}
通过我可以使用convert int array to byte array来实现我的目标,但是效率有点低,所以我想用下面的代码来实现同样的目标:
final ByteBuffer rgbaData = ByteBuffer.allocateDirect(WIDTH * HEIGHT * 4);
GLES20.glReadPixels(0, 0, WIDTH, HEIGHT, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, rgbaData),
解决方案
推荐阅读
- javascript - 根据菜单中的选择更改输入类型
- javascript - Mongoose date $gte 运算符未按预期工作
- node.js - 基本节点错误:app.use() 需要中间件函数
- javascript - 使用 blob 从 md 输入制作 .docx 文件?
- linux - 使用 CSV 中的文件列作为文件名,在 bash 中查找并输出文件的完整路径
- python - 计算多标签分类问题的标签数量时出错
- django - 在 Django 中实例化时预填充非模型表单属性
- python - 将函数应用于 Pandas 中的数据框会返回 UnboundLocalError
- go - 如何在 Prometheus (k8s) 中动态定义指标
- excel - For Loops 仅在将值插入 6 行单元格后执行 3 步