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

    


      

你可能感兴趣的:(Android,Bitmap模块分析)