1

写真を撮ってSDカードに保存するアプリがありますが、撮った写真はすべて非常に圧縮されており、品質が非常に低くなっています。完全な品質で圧縮しているので、なぜこれを行っているのかわかりません。助言がありますか?コードは次のとおりです。

protected void takePhoto()
{
    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(intent, 0); 
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    super.onActivityResult(requestCode, resultCode, data);
    currPhoto = (ImageView) findViewById(R.id.imageView1);

    if (requestCode== 0 && resultCode == Activity.RESULT_OK){
        Bitmap x = (Bitmap) data.getExtras().get("data");
        currPhoto.setImageBitmap(x);
        ContentValues values = new ContentValues();
        values.put(Images.Media.MIME_TYPE, "image/jpeg");
        Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values);
        OutputStream outstream;
        try {
            outstream = getContentResolver().openOutputStream(uri);

        x.compress(Bitmap.CompressFormat.JPEG, 90, outstream);
        outstream.close();
        } catch (FileNotFoundException e) {
            //
        }catch (IOException e){
            //
        }
    }
}

編集:実際には、サムネイルをSDに保存するだけのようです。

例

4

1 に答える 1

1

ドキュメントから:

public static final 文字列ACTION_IMAGE_CAPTURE

API level 3カメラ アプリケーションが画像をキャプチャして返すために送信できる標準インテント アクションに追加されました。

呼び出し元はEXTRA_OUTPUT、このイメージが書き込まれる場所を制御するためのエクストラを渡すことができます。が存在しない場合EXTRA_OUTPUT、小さいサイズの画像が追加フィールドの Bitmap オブジェクトとして返されます。これは、小さな画像のみが必要なアプリケーションに役立ちます。が存在する場合 EXTRA_OUTPUT、フルサイズの画像が の Uri 値に書き込まれますEXTRA_OUTPUT

于 2013-04-07T01:29:51.927 に答える