0

カメラから (デバイスのホーム画面から) 画像をキャプチャし、SD カードの画像サイズを確認すると、300 ~ 500 Kb と表示されます。

しかし、カメラ インテントを使用してアプリケーションで画像をキャプチャし、それを SD カード (新しいフォルダー) に保存すると、5 ~ 10 Kb の画像サイズが表示されます。

これは、onActivityResult で写真を撮った後、SD カードに画像を保存するために使用しているコードです。

Bitmap bit = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream bao = new ByteArrayOutputStream();
bit.compress(Bitmap.CompressFormat.JPEG, 100, bao);
byte[] ba = bao.toByteArray();
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "My - Images");
File f = new File(imagesFolder, "test.jpg");
f.createNewFile();
FileOutputStream fo = new FileOutputStream(f);
fo.write(ba);
fo.flush();
fo.close();

元のサイズの画像 (300-500 Kb) として保存するにはどうすればよいですか?

SDカードに保存する前に画像サイズを取得する方法はありますか??

ありがとうございました

4

3 に答える 3

1

以下を使用して、受け取ったビットマップ オブジェクトを圧縮しています。

bit.compress(Bitmap.CompressFormat.JPEG, 100, bao);

これが、ビットマップが圧縮形式で保存されている理由です。

また、 と を使用bit.getHeight()bit.getWidth()てビットマップの寸法を取得することもできます。bit.getByteCount()ビットマップの実際のサイズを取得するために使用できます

于 2012-09-25T09:03:31.587 に答える
1

ここで受け入れられた回答を確認してください。うまくいくことを願っています

Android カメラの意図: フルサイズの写真を取得するには?

于 2012-09-25T11:33:57.727 に答える
0

まず、以下のコードを使用して画像のサイズを調べてみてください

Camera mCamera = null;
Camera.Parameters camParams = mCamera.getParameters();
Size camSize = camParams.getPictureSize(); 

取得した画像サイズが 5 ~ 10 KB の場合、コードに問題はありません。設定した品質を確認するには、カメラのパラメーターを再度確認する必要があります。

于 2012-09-25T09:09:45.807 に答える