您的位置:首页 > 移动开发 > Android开发

Android 4K高清图片解码显示(2)BitmapFactory常用Bitmap的解码方法

2015-11-20 14:57 1236 查看
Bitmap表示位图,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2、4、8、16、24和32位色彩。例如,一幅1024×768分辨率的32位真彩图片,其所占存储字节数为:1024×768×32/8=3072KB,如果是4K的图片,解码时占用内存的大小可想而知。在android系统当中,bitmap是图像处理最重要的类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件。

Android中的BitmapFactory类提供了常用解码图片得到bitmap的方法包括:

1.通过路径解码本地图片:

BitmapFactory.decodeFile(String pathName);

BitmapFactory.decodeFile(String pathName, Options opts);

2.解码app中的resource资源

BitmapFactory.decodeResource(Resources res, int id)

BitmapFactory.decodeResource(Resources res, int id, Options opts);

BitmapFactory.decodeResourceStream(Resources res, TypedValue value,

InputStream is, Rect pad, Options opts)

3.从字节中解码,可以用于解码网络下载的图片数据

BitmapFactory.decodeByteArray(byte[] data, int offset, int length);

BitmapFactory.decodeByteArray(byte[] data, int offset, int length, Options opts);

4.解码数据流

BitmapFactory.decodeStream(InputStream is);

BitmapFactory.decodeStream(InputStream is, Rect outPadding, Options opts);

5.通过文件描述符FD(file descriptor)解码图片文件

BitmapFactory.decodeFileDescriptor(FileDescriptor fd);

BitmapFactory.decodeFileDescriptor(FileDescriptor fd, Rect outPadding, Options opts);

相对来说,1-4都是常用的方法,5比较不常用,下面是常用的解码代码:

1.Bitmap bitmap =
BitmapFactory.decodeFile("/sdcard/test.png");

2.FileInputStream fis = new FileInputStream("/sdcard/test.png");

Bitmap bitmap = BitmapFactory.decodeStream(fis);

3.Bitmap bitmap =BitmapFactory.decodeResource(this.getContext().getResources(), R.drawable.test);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: