我想将SD卡中的图像保存到android中的设备库中。问题是图像是以jpeg而不是png的形式存在,并且它会丢失质量并且看起来很糟糕。
这是我的代码:
File sdCard = Environment.getExternalStorageDirectory();
File file = new File(sdCard, "fileName.png");
Bitmap top = BitmapFactory.decodeFile(file.getPath());
MediaStore.Images.Media.insertImage(getContentResolver(), top, "someText" , "someDescription");
Toast toast = Toast.makeText(getBaseContext(), "Image saved to gallery", Toast.LENGTH_SHORT);
toast.show();
为什么图像保存为jpeg,如何在不降低质量的情况下保存图像? b.t.w - SD卡上的图像质量非常好,如果我将图像添加到意图并通过电子邮件发送 - 质量非常好。
答案 0 :(得分:1)
您可以使用此代码以png格式保存图像。
Bitmap bitmap = createYourBitmap();
OutputStream stream = new FileOutputStream("/sdcard/test.png");
/* Write bitmap to file using JPEG or PNG and 80% quality hint for JPEG. */
bitmap.compress(CompressFormat.PNG, 80, stream);
stream.close();