我需要通過網絡發送從相機拍攝的圖像。該圖片太大,無法創建使用bitmap.compress()所需的位圖;它看起來像Gmail應用程序可以從相機附加圖像,同時保持其大像素大小,但大大減少了文件大小。從相機壓縮位圖
這將不起作用,因爲我getBitmap()將返回一個圖像大到分配,我不想將它取樣到一個較小的大小。
ByteArrayOutputStream baos = new ByteArrayOutputStream();
getBitmap().compress(Bitmap.CompressFormat.JPEG, 70, baos);
有關如何在不超過我的總內存的情況下做同樣的任何想法?
更新:
對於任何人回來這個線程我跟着菲爾的答案,並使用Apache的MultiPartEntity獲得輕鬆完成工作。 (它可以爲你處理從磁盤到網絡的流文件)http://hc.apache.org/httpcomponents-client-ga/httpmime/apidocs/org/apache/http/entity/mime/MultipartEntity.html
是使用相機API抓拍圖片的代碼? – 2011-03-31 02:24:09
不,只是從畫廊拉,但即使是畫廊的應用程序是全尺寸和未壓縮。 – sgarman 2011-03-31 03:11:34