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

原创 2015年11月20日 14:57:01

   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);

    


      

相关文章推荐

android 图片解码显示流程

问题来源 android 可以在 gallery 里面显示内部存储的图片,支持 jpeg,png,gif,bmp 等,甚至文件类型和图片后缀名不一致,只要是图片文件就能显示,然后 git 只会显示第...

关于BitmapFactory.decodeStream(is)方法无法正常解码为Bitmap对象的解决方法

在android sdk 1.6版本API帮助文档中,其中关于BitmapFactory.decodeFactory.decodeStream(InputStream is)的帮助文档是这么说明的: ...

关于图片的压缩(大小压缩和质量压缩)BitmapFactory.Options详解

http://blog.csdn.net/luohai859/article/details/25394605 下面我们回到我们的主题上来:怎样获取图片的大小? 思路很简单: 首先我们把这个...

调用 BitmapFactory.decodeByteArray 函数返回 null 值

在做 自定义相机 截取图像 的时候,调用 系统函数 都会有 byte[] data 参数,一般 第一时间 会想到使用 BitmapFactory.decodeByteArray 函数,可是当 使用的时...

通过BitmapFactory.decodeByteArray把byte[]转成Bitmap出现的OOM的解决方法

使用Bitmap mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length)来转成Bitmap的时候,老报OOM,在网上也找了很多关于优...

Android 4K高清图片解码显示(3)Bitmap优化

上一篇介绍了Android中常用的解码方法。Bitmap是Android开发中经常要使用到的,但是由于Bitmap的使用会占用大量内存,容易造成OOM。Bitmap占用的内存为:像素总数 * 每个像素...

Android图片编解码实现方案(Skia)

1. Android图片解码流程 1)  APP:BitmapDecode.java 2) API:BitmapFactory.java(static image)、Movie.java(dyna...
  • MyArrow
  • MyArrow
  • 2013年01月25日 10:45
  • 11002

Graphics->BitmapDecode 介绍Android 平台对图像的解码功能,Android平台支持PNG, JPEG图像格式,并可以支持 gif动画。

BitmapDecode 例子主要介绍了Android 平台对图像的解码功能,Android平台支持PNG, JPEG图像格式,并可以支持 gif动画。 Android API中用来解码图像的类主要...

Android中解决图像解码导致的OOM问题

在上一篇博文Android Bitmap内存限制中我们详细的了解并分析了Android为什么会在Decode Bitmap的时候出现OOM错误,简单的讲就是Android在解码图片的时候使用了本地...

Android 4K高清图片解码显示(3)Bitmap优化

上一篇介绍了Android中常用的解码方法。Bitmap是Android开发中经常要使用到的,但是由于Bitmap的使用会占用大量内存,容易造成OOM。Bitmap占用的内存为:像素总数 * 每个像素...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 4K高清图片解码显示(2)BitmapFactory常用Bitmap的解码方法
举报原因:
原因补充:

(最多只允许输入30个字)