我有一个好奇的问题。在位图中解码 JPG 图像时,由于 JPG 是一种压缩格式,因此占用的内存非常高。因此对于 0.5 MB 的 JPG 图像,位图几乎是 4 MB。我的问题是如果我想上传图像,我可以从文件中读取它并将其发送到服务器,即我不需要在位图中加载它。有没有人试过这个?这有意义吗?
感谢帮助。
我有一个好奇的问题。在位图中解码 JPG 图像时,由于 JPG 是一种压缩格式,因此占用的内存非常高。因此对于 0.5 MB 的 JPG 图像,位图几乎是 4 MB。我的问题是如果我想上传图像,我可以从文件中读取它并将其发送到服务器,即我不需要在位图中加载它。有没有人试过这个?这有意义吗?
感谢帮助。
jpg 是一种将压缩图像存储到文件中的格式。这是实用的,因为它比原始位图格式占用更少的内存,其中图像中所有像素的颜色值都明确地存在于数据中。
您确实需要解压缩 jpg 文件才能显示它,但是发送它的最佳方式是使用压缩的 jpg 文件(无需加载位图,只需发送文件中的数据)。
请注意,JPEG 压缩是有损的,这意味着尺寸的减小伴随着原始源图像质量的下降。(请参阅详尽且说明良好的维基百科条目: https ://en.wikipedia.org/wiki/Jpg )。
是的,这是可能的。您无需将 jpg 转换为位图即可将其上传到服务器。
您可以考虑使用更高级别的 API,例如http://loopj.com/android-async-http/。有关详细信息,请参阅“使用 RequestParams 上传文件”部分。