我正在創建一個android應用程序,並希望從sdcard讀取一個文件並將其發送到其他web服務。一切工作正常,但是當我從SD卡讀取文件時,它的文件大小比原始文件大得多。一個10 KB的文件變得260 KB。Android從sdcard中讀取圖像。錯誤的尺寸
我做了以下... SD卡上
File f = new File(uri);
Log.d("ORIGINAL FILESIZE:"+f.length());
文件大小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倍。
有誰知道我在做什麼錯?
嗨,但不bmp.compress方法只是從磁盤讀取已壓縮的圖像?我不想壓縮它兩倍。我想保持原樣。 – Chris 2012-07-11 15:17:03
爲什麼你需要解碼圖像? – fiddler 2012-07-11 15:19:41
不確定。也許不會。我只需要從SD卡讀取圖像,並需要獲得一個byte []數組。有沒有更好的辦法呢? – Chris 2012-07-11 15:26:04