Android アプリを作成していて、sdcard からファイルを読み取り、残りの Web サービスに送信したいと考えています。すべて正常に動作しますが、sdcard からファイルを読み取ると、ファイルサイズが元のサイズよりもはるかに大きくなります。10 KB のファイルが 260 KB になります。
私は次のことをやっています...
File f = new File(uri);
Log.d("ORIGINAL FILESIZE:"+f.length());
SDCARD のファイルサイズは 10752 バイトです。
これは、電話の画像とまったく同じサイズです。
Bitmap bmp = BitmapFactory.decodeFile(uri);
ByteArrayOutputStream bao = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, bao);
Log.d("FILESIZE AFTER:"+bao.size());
デコード/圧縮後のファイルサイズ 260904 バイト。
これは、サーバーが受信してディスクに書き込むファイルサイズです。画像と品質は同じですが、約 20 倍の大きさです。
私が間違っていることを誰かが知っていますか?