我正在尝试将一组位图保存为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
答案 0 :(得分:0)
答案 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);
}