Android 图片旋转,图片压缩,Bitmap旋转角度,bitmap与byte[]之间相互转换

压缩前后。图片大小  2.22MB——>200KB

         

 

 1、图片压缩方法:


Bitmap bitmap;
byte[] buff;
buff = Bitmap2Bytes(bitmap);
BitmapFactory.Options ontain = new BitmapFactory.Options();
ontain.inSampleSize = 7;//值1为原图。值越大,压缩图片越小1-20
bitmap = BitmapFactory.decodeByteArray(buff, 0, buff.length, ontain);


2、bitmap转byte


private byte[] Bitmap2Bytes(Bitmap bm) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
    return baos.toByteArray();
}

3、byte转bitmap


private Bitmap Bytes2Bimap(byte[] b) {
    if (b.length != 0) {
        return BitmapFactory.decodeByteArray(b, 0, b.length);
    } else {
        return null;
    }
}
 

 

旋转方法:

 

//Rotate Bitmap
public final static Bitmap rotate(Bitmap b, float degrees) {
    if (degrees != 0 && b != null) {
        Matrix m = new Matrix();
        m.setRotate(degrees, (float) b.getWidth() / 2,
                (float) b.getHeight() / 2);

        Bitmap b2 = Bitmap.createBitmap(b, 0, 0, b.getWidth(),
                b.getHeight(), m, true);
        if (b != b2) {
            b.recycle();
            b = b2;
        }

    }
    return b;
}

 

 

调用

 

bitmap = rotate(bitmap,90);

效果

选图

Android 图片旋转,图片压缩,Bitmap旋转角度,bitmap与byte[]之间相互转换_第1张图片                    Android 图片旋转,图片压缩,Bitmap旋转角度,bitmap与byte[]之间相互转换_第2张图片

 

你可能感兴趣的:(移动开发)