1

カメラで撮影した画像を写真フォルダに保存したいのですが、画像が小さいサイズで保存されるのが唯一の解決策ではありません...

Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(i, TAKE_PICTURE);

protected void onActivityResult(int requestCode, int resultCode, Intent imageReturned) {
    super.onActivityResult(requestCode, resultCode, imageReturned);

    switch(requestCode) {
        case TAKE_PICTURE:
            if(resultCode == RESULT_OK)
            { 
                ByteArrayOutputStream bytes = new ByteArrayOutputStream();
                photo.compress(Bitmap.CompressFormat.PNG, 100, bytes);                  

                File f = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)+ File.separator + "test3.png");
                try {
                    f.createNewFile();
                    //write the bytes in file
                     FileOutputStream fo = new FileOutputStream(f);
                     fo.write(bytes.toByteArray());
                     fo.flush();
                     // remember close de FileOutput
                     fo.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }    
            }
    }
}
4

1 に答える 1

9

ドキュメントを読むことを検討する必要があります。

http://developer.android.com/reference/android/provider/MediaStore.html#ACTION_IMAGE_CAPTURE

フルサイズに設定しない限り、常に小さい画像が表示されます。

開発サイトから直接

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

于 2013-02-04T21:12:25.087 に答える