无法将图像位图转换为byteArray

时间:2016-11-10 08:26:29

标签: android arrays bitmap base64

我使用以下代码将我的图像位图编码为byte []然后编码为字符串,但在将其编码为byte []时,它表示无法编码..

Bitmap bm = BitmapFactory.decodeFile(path);
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        (bm).compress(Bitmap.CompressFormat.JPEG, 100, stream);
        bm.recycle();
        byte[] byteFormat = stream.toByteArray();
        String encodedImage = Base64.encodeToString(byteFormat, Base64.NO_WRAP);

该应用程序工作正常,但我被困在这里。建议问题。

2 个答案:

答案 0 :(得分:0)

public static byte[] bitmapToByteArray(Bitmap bitmap){
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
    byte[] byteArray = stream.toByteArray();
    bitmap.recycle();
    return  byteArray;
}

答案 1 :(得分:0)

试试这个我的作品:)

public String imageToBaseString(String path) {
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inSampleSize = 1;
        Bitmap bm = BitmapFactory.decodeFile(path, options);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bm.compress(Bitmap.CompressFormat.PNG, 100, baos); 
        byte[] b = baos.toByteArray();
        return Base64.encodeToString(b, Base64.DEFAULT);
   }