0

SD カードから Android のデバイス ギャラリーに画像を保存したいと考えています。問題は、画像が png ではなく jpeg として保存され、品質が低下し、見た目が非常に悪いことです。

これは私のコードです:

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 に答える