如何将字节数组转换为位图图像?

3

我在这里附上将位图转换为字节数组的代码,现在我需要重新生成位图以在Android Image-view中显示。

在下面的代码中,mRawBitmapData是字节数组。这段代码创建了用于转换图像的字节数组,因此现在我需要从该字节数组中重新生成位图。

private void convertArgbToGrayscale(Bitmap bmpOriginal, int width, int height){
    int pixel;
    int k = 0;
    int B=0,G=0,R=0;
    try{
        for(int x = 0; x < height; x++) {
            for(int y = 0; y < width; y++, k++) {

                pixel = bmpOriginal.getPixel(y, x);

                if(pixel == -1){
                    mDataArray[k] = 1;
                }
                else {
                    mDataArray[k] = 0;
                }
            }
            if(mDataWidth>width){
                for(int p=width;p<mDataWidth;p++,k++){
                    mDataArray[k]=0;
                }
            }
        }
    }catch (Exception e) {

        Log.e(TAG, e.toString());
    }
}

private void createRawMonochromeData(){
    int length = 0;
    for (int i = 0; i < mDataArray.length; i = i + 8) {

        int k=0;
        for (int j = 7; j >=0; j--, k++) {
            if(mDataArray[i+k]==1)
            {
                mRawBitmapData[length] |= 1 << j;
            }
            else
            {
                mRawBitmapData[length] &= ~(1 << j);
            }

        }

        length++;

    }
}
2个回答

12
byte[] bitmapdata; // let this be your byte array
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata , 0, bitmapdata .length);

3
使用Android的BitmapFactory从字节数组获取位图,例如:
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata , 0, bitmapdata.length);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接