4

アプリのスクリーンショットをギャラリーに保存しています -

//screenshot
private void screenshot()
{
    Uri photo = lomography();
    String photopath = photo.getPath();
    try {
        MediaStore.Images.Media.insertImage(getContentResolver(), photopath, "name" , "desc");
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}

フォトパスに保存されている画像は高品質です。

ここに画像の説明を入力

しかし、ギャラリーに移動して同じ写真を開くと、これはいくつかの圧縮アーティファクトを含む低 JPEG バージョンです。

ここに画像の説明を入力

元のファイルが PNG の場合、ギャラリーの画像が JPEG バージョンになるのはなぜですか? 高解像度バージョンをギャラリーに保存するにはどうすればよいですか?

ここで、トリックは「ContentResolver::insert でイメージを登録する」にあると読みました。

しかし、私は getContentResolver を使用しています。

4

2 に答える 2

1

この問題を解決するには、「MediaStore.Images.Media.insertImage」メソッドの宣言を開き、必要なコードをコピーして独自のクラスに貼り付けます。次に、画像を 50% で圧縮している場所で 100% に変更します。

于 2015-06-04T03:28:50.177 に答える
-3

これが答えでした。つまり、 「これ」はコードの欠落部分でした。

「MediaStore.Images.Media.insertImage( getContentResolver ()」の代わりに、 MediaStore.Images.Media.insertImage( this.getContentResolver ()を使用する必要がありました

問題が解決しました。

于 2013-07-23T06:48:55.117 に答える