我使用我的Android相機捕捉圖像,但相機是8MP,所以我得到4-5MB的JPEG圖像。所以,我試圖使用下面的代碼將它們壓縮到1 MB。如何在Android中將捕獲的圖像壓縮到特定尺寸?
數據包含JPEG和BAOS是ByteArrayOutputStream類型的圖像。
while (data.length > 1 * 1024 * 1024)
{
System.gc();
Log.e(TAG,"Data size "+ (data.length/1024));
bitmapData.compress(CompressFormat.JPEG, compressionRatio, baos);
data = baos.toByteArray();
Log.e(TAG,"Data size "+ (data.length/1024));
compressionRatio -= 5 ;
}
它讓我捕捉到一些圖像,但後幾個圖片,應用程序崩潰,錯誤日誌Out of memory
。 任何人都可以提供更好的解決方案來壓縮JPEG。
三江源
http://stackoverflow.com/questions/4943016/android-how-到壓縮 - 或縮小 - 的圖像。 – Raghunandan
http://stackoverflow.com/questions/6265008/how-to-reduce-large-image-size-to-thumbnail-size-in-android – juned
只是使用FileOutputStream out = new FileOutputStream(file); \t \t \t \t \t bm.compress(Bitmap.CompressFormat.JPEG,90,out); –