2014-09-10 89 views
0

我正在從一個url下載一個圖像,並在我的android應用程序中創建一個位圖圖像。圖像大小爲126 kb。當我在我的應用程序中通過從url下載來創建圖像時,大小約爲3.25 mb。我使用下面的代碼從url下載圖像:爲什麼我從網址下載圖像時圖像的大小不一樣?

URL urlConnection = new URL(imageUrl); 
HttpURLConnection connection = (HttpURLConnection) urlConnection.openConnection(); 
connection.setDoInput(true); 
connection.connect(); 
InputStream input = connection.getInputStream(); 
Bitmap bitmap = BitmapFactory.decodeStream(input); 

爲什麼下載的圖像大小更大,有什麼辦法以相同的大小下載它?提前致謝。

+0

下載的大小不大。您將下載後的下載字節轉換爲位圖。是的,然後他們佔據更多的記憶。我在你的文章中錯過的是你如何知道它是3.25 MB。 – greenapps 2014-09-10 21:28:26

回答

1

您下載的圖像可能是某種壓縮格式(.jpg .png)。另一方面,您從BitmapFactory.decodeStream獲得的位圖是未壓縮的格式。 如果您不需要以原始分辨率顯示位圖,則可以將其縮小(detailed instructions here)。否則,這種內存使用是正常的。

0

圖像大小取決於每個你必須給每通過分辨率每個樣品^ 2 x寬度x高度x位÷8192

1

Android是給定像素 文件大小的比特像素.during轉換位轉換此圖像爲bmp 。你可以自己轉換它,你的大小約爲3.5 mb。

1

不要使用Bitmapfactory進行下載。使用InputStream和FileOutputStream直接保存到內部,外部或可移動內存。

+0

任何線索_why_?對於他爲什麼不同的直接問題的任何答案? – ataulm 2014-09-10 21:29:08

+0

請閱讀其他評論。該圖像不僅被下載。但之後轉換爲位圖。 – greenapps 2014-09-10 21:29:42

+0

對不起,我並沒有真正要求 - 我的意思是作爲改善答案的指針。 – ataulm 2014-09-10 21:43:03

相關問題