Android中经常会遇到需要对图片进行缩放及压缩的操作,下面列出3种图片缩放方法:
一.图片缩放
1.inSampleSize(采样率)
优点:效率较高,解析速度快
缺点:采样率inSampleSize的取值只能是2的次方数(例如:inSampleSize=15,实际取值为8;inSampleSize=17,实际取值为16;实际取值会往2的次方结算),因此该方法不能精确的指定图片的大小
2.Matrix
优点:可以精确地指定图片的缩放大小
缺点:是在原bitmap的基础之上生成的,占内存,效率低.
3.ThumbnailUtils
2.2新加的类,实际上是将上述两种方法进行结合并做了封装.
二.图片压缩
往往图片压缩是为了节省网络流量,进行网络传输,一般需要将图片压缩成byte[] 数组.
public static byte[] BitmapToByte(Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 80, baos);//其中80参数表示要压缩的比例
return baos.toByteArray();
}