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

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

    


      
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值