Bitmap

13 篇文章 0 订阅
1. 详解

Bitmap位图包括像素以及长、宽、颜色等描述信息。长宽和像素位数是用来描述图片的,可以通过这些信息计算出图片的像素占用内存的大小。

位图可以理解为一个画架,把图放到上面然后可以对图片做一系列的处理。

位图文件图像显示效果好,但是非压缩格式,需要占用较大的存储空间。

Config

表示图片像素类型

  • ARGB_8888
  • ARGB_4444
  • RGB_565
  • ALPHA_8

使用场景

  • ARGB_4444失真严重,基本不用
  • ALPHA_8使用场景特殊,比如设置遮盖效果等
  • RGB_565,不需要设置透明度
  • ARGB_8888,既要设置透明度,对图片质量要求又高

CompressFormat

压缩格式

  1. Bitmap.CompressFormat.JPEG
  2. Bitmap.CompressFormat.PNG
  3. Bitmap.CompressFormat.WEBP

特点:

  • JPEG:一种有损压缩(JPEG2000既可以有损也可以无损),".jpg"或者".jpeg"; 优点:采用了直接色,有丰富的色彩,适合存储照片和生动图像效果;缺点:有损,不适合用来存储logo、线框类图。
  • PNG: 一种无损压缩,".png"; 优点:支持透明、无损,主要用于小图标,透明背景等;缺点:若色彩复杂,则图片生成后文件很大;
  • WEBP:以WebP算法进行压缩;Google开发的新的图片格式,同时支持无损和有损压缩,使用直接色。无损压缩,相同质量的webp比PNG小大约26%;有损压缩,相同质量的webp比JPEG小25%-34% 支持动图,基本取代gif
2. 加载

BitmapFactory类提供了四类方法:

  1. decodeFile()
  2. decodeResource()
  3. decodeStream()
  4. decodeByteArray()

分别表示从文件系统,资源,输入流,字节数组中加载出一个Bitmap对象。

高效加载

采用BitmapFactory.Options来加载所需尺寸的图片。通过inSmapleSize参数设置图片采样率。

public static Bitmap compressImageToBitmap(String imagePath){
		BitmapFactory.Options options = new BitmapFactory.Options();
		options.inJustDecodeBounds = true;
		Bitmap bitmap = BitmapFactory.decodeFile(imagePath,options);
		if(bitmap != null){
			System.out.println("bitmap=========1>>>>"+bitmap.getByteCount());
		}else{
			System.out.println("kong");
		}
		options.inJustDecodeBounds = false;
		//采样率为2,那么采样后的图片其宽/高均为原图的1/2
		options.inSampleSize = 2;
		bitmap = BitmapFactory.decodeFile(imagePath,options);
		System.out.println("bitmap=========2>>>>"+bitmap.getByteCount());
		return bitmap;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值