0

我想将图像从我的 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,如何保存而不损失质量?顺便说一句 - SD 卡上的图像质量非常好,如果我将图像添加到意图并通过电子邮件发送 - 质量非常好。

4

1 回答 1

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();
于 2013-02-19T05:43:27.077 回答