在Android中将图像另存为位图时出现问题

时间:2018-11-28 13:11:16

标签: android bitmap webp

我正在尝试将一组位图保存为android中的webp图像,但是在处理多个位图时,应用程序终止了。

    for(int i=0;i<bitmapArr.length;i++){
                        try{
                            FileOutputStream fileOutputStream = new FileOutputStream(file);
                            bitmapArr[i].compress(Bitmap.CompressFormat.WEBP,100,fileOutputStream);
                            fileOutputStream.close();
                        }catch (Exception e) {
                            e.printStackTrace();
                        }
                    }

例外:

A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x6e800000 in tid 19366

2 个答案:

答案 0 :(得分:0)

尝试在清单中禁用Android硬件加速。

android:hardwareAccelerated="false"

阅读这篇文章以了解同样的问题。Read here

答案 1 :(得分:-1)

您应该先解码然后再上传。

static {
    System.loadLibrary("webp");
}

private Bitmap webpToBitmap(byte[] encoded) {

    int[] width = new int[] { 0 };
    int[] height = new int[] { 0 };
    byte[] decoded = libwebp.WebPDecodeARGB(encoded, encoded.length, width, height);

    int[] pixels = new int[decoded.length / 4];
    ByteBuffer.wrap(decoded).asIntBuffer().get(pixels);

    return Bitmap.createBitmap(pixels, width[0], height[0], Bitmap.Config.ARGB_8888);
}