加载大图片到内存的合理方法

本文介绍了计算机中图像的表示和存储方式,强调了Android系统中内存管理和图片加载的关系。由于Android设备通常限制每个应用的内存使用,加载高分辨率图片可能导致内存溢出(OOM)。解决方法是通过缩放图片至适合屏幕分辨率的尺寸,减少内存申请。代码示例展示了缩放图片的实现。
摘要由CSDN通过智能技术生成

图形图像处理

先明确几个概念。
1.关于单位:计算机中最小单位是比特bit,即一个0或者一个1,计
算机存储文件是以byte为单位,byte是字节等于8个比特。
1M=1024kb;1kb=1024byte;1byte=8bit;

2.计算机如何表示图形:以像素为单位,组合成一张图片,图像的分辨率就是像素的个数。比如一张图片的分辨率是1028*720,这张图片就由1028*720个像素点组成。组成图片的像素点越多,对图片细节的描绘就越精确,表现出来的就是更加清晰。照相机的像素越高(应该说分辨率越高)拍出的照片越清晰就是这个道理,500万像素就表示拍出的一张照片由500w个像素组成。

3.计算机存储图像:存储每个像素的颜色,假如以32位位图的格式存储,每个像素需要32bit也就是4个byte,计算一下,1028*720*4/1024/1024=2.82M 需要2.82M的空间存储这张图片。不过计算机中有很多的图片压缩方式,比如黑白照片一个bit就可以表示一个像素,相当而言占用空间是非常小的。
android下使用的是RGB表示颜色。RGB:red green blue,#ff ff ff .#FF FF FF表示白色,#000000表示黑色。

4.Android系统在内存中表示一个像素的颜色需要32位,以16进制表示:0x FF FF FF FF ,第一个FF代表透明度,依次为,红色,绿色,蓝色。一个int的值时32位,一个int值可以代表计算机中一个像素的颜色。

5.大部分Android手机系统给每个应用程序分配的内存大小为16M࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值