Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 生成的位图只有零值_Android_Image_Bitmap - Fatal编程技术网

Android 生成的位图只有零值

Android 生成的位图只有零值,android,image,bitmap,Android,Image,Bitmap,我正在尝试将字节数组解码成位图,以便在android中使用。 我用来解码的字节数组是由一个名为GlReadPixels的OpenGl命令生成的,里面的数据是正确的 MainActivity.dataInputStream.readFully(Image, 0,256 * 256 * 4); //converting from rgba to argb for (int i = 0; i < Image.length - 1; i = i + 4) { au

我正在尝试将字节数组解码成位图,以便在android中使用。 我用来解码的字节数组是由一个名为GlReadPixels的OpenGl命令生成的,里面的数据是正确的

    MainActivity.dataInputStream.readFully(Image, 0,256 * 256 * 4);

//converting from rgba to argb
    for (int i = 0; i < Image.length - 1; i = i + 4) {
        aux = (Image[i + 3] & 0xFF);
    IntImage[i + 3] = (int) (Image[i + 2] & 0xFF);
    IntImage[i + 2] = (int) (Image[i + 1] & 0xFF);
    IntImage[i + 1] = (int) (Image[i] & 0xFF);
    IntImage[i] = aux;
     }
MainActivity.dataInputStream.readFully(图,0256*256*4);
//从rgba转换为argb
对于(int i=0;i
如果我这样做:
bmp=Bitmap.createBitmap(intige,256,256,Config.ARGB_8888)或此:

bmp=Bitmap.createBitmap(256,256,Config.ARGB_8888);
设置像素(亲密度,0,256,0,0,256,256),

生成的位图将只有0个值


有人能告诉我这是为什么吗?

Bitmap.createBitmap需要256*256大小的数组,您给它256*256*4,因此您只给一个部分,它看起来像这样,0x000000FF。。0x000000RR,0x000000GG,如果你明白我的意思

像这样更改argb函数

int[] imageARGB = new int[256 * 256];

for(int i = 0; i < imageARGB.length, i++){
    imageARGB[i] = Color.argb(yourAlpha, RR, GG, BB);
}
int[]imageARGB=newint[256*256];
对于(int i=0;i

希望这有助于享受您的工作

谢谢谢谢谢谢!这起作用了。在过去的3-4天里,我一直在为此苦苦挣扎。