关闭

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

678人阅读 评论(0) 收藏 举报
分类:

   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
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1785次
    • 积分:56
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档