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 只会显示第...
  • jingxia2008
  • jingxia2008
  • 2014年06月19日 15:04
  • 5655

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

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

《老罗Android第二季》Bitmap位图解码

1.
  • ymangu
  • ymangu
  • 2014年07月01日 16:10
  • 1401

java 图片解析,血的教训 BitmapFactory.decodeByteArray() 是个邪恶的方法

BitmapFactory.decodeByteArray()  是个邪恶的方法  , 在android 上 很容易 OOM。      正解如下: /** * 将从Messag...
  • cnsxhza985
  • cnsxhza985
  • 2014年02月21日 16:03
  • 23129

获取Bitmap的几种方式总结

从获取方式分: (1)以文件流的方式 假设在sdcard下有 test.png图片 FileInputStream fis = new FileInputStream("/sdcard/te...
  • u012861467
  • u012861467
  • 2016年07月24日 14:12
  • 9499

BitmapFactory.decodeStream使用inJustDecodeBounds参数解析网络流的问题

BitmapFactory.Options的inJustDecodeBounds设置为false使BitmapFactory
  • oHeHeHou
  • oHeHeHou
  • 2014年10月10日 23:22
  • 3206

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

Bitmap表示位图,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2、4、8、16、24和32位色彩。例如,一幅1024×768分辨率的32位真彩图片,其所占存储字节数为:1024×...
  • ccqqqqqq
  • ccqqqqqq
  • 2015年11月20日 14:57
  • 927

Android jp2(jpeg2000)图片的解码显示

前段时间在项目中,碰到了jp2这种格式的图片。jp2是jpeg2000标准图片的后缀名,刚开始我还以为可以用jpg来解析,后来搞半天也没弄出来,就各种百度、google。终于找到一个老外写的库,现在和...
  • u011138654
  • u011138654
  • 2015年05月11日 17:56
  • 1079

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

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

BitmapFactory解码图片不显示(项目中的 bug)

BitmapFactory.decodeFile(imageFile); 用BitmapFactory解码一张图片时,有时会遇到该错误。这往往是由于图片过大造成的。要想正常使用,则需要分配更少的...
  • u014074418
  • u014074418
  • 2014年07月14日 14:52
  • 1692
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 4K高清图片解码显示(2)BitmapFactory常用Bitmap的解码方法
举报原因:
原因补充:

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