我从网络服务器(具有透明背景)获取图像。现在我需要将此图像保存在我的SD卡上并显示给用户。但是当我将图像保存到SD卡时。它以黑色背景保存..我需要带背景的图像..
我尝试了以下方法来保存图像---
方法1:
Bitmap bitmap = BitmapFactory.decodeStream(is);
byte[] b;
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 75, bytes);
b = bytes.toByteArray();
try {
File myFile = new File("/sdcard/" + image_id + ".jpg");
myFile.createNewFile();
OutputStream filoutputStream = new FileOutputStream(myFile);
filoutputStream.write(b);
filoutputStream.flush();
filoutputStream.close();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d("file", "not created");
}
方法2:
MediaStore.Images.Media.insertImage(getContentResolver(),
bitmap, "sample", "image/png");
plz help ...
答案 0 :(得分:7)
为什么不将流保存到文件中?它已被编码为透明图像。
快速注意:JPEG不支持透明度。