2014-09-10 75 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