Android 压缩图片并转Base64方法之一

来源:互联网 发布:剩余windows重置计数2 编辑:程序博客网 时间:2024/06/08 02:26
private void pushCamera() {    //通过图片路径获取图片并压缩后转换成String    String base64Image = bitmapToString(imagePath);}//计算图片的缩放值public static int calculateInSampleSize(BitmapFactory.Options options,int reqWidth, int reqHeight) {    final int height = options.outHeight;    final int width = options.outWidth;    int inSampleSize = 1;    if (height > reqHeight || width > reqWidth) {        final int heightRatio = Math.round((float) height/ (float) reqHeight);        final int widthRatio = Math.round((float) width / (float) reqWidth);        inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;    }    return inSampleSize;}// 根据路径获得图片并压缩,返回bitmap用于显示public static Bitmap getSmallBitmap(String filePath) {    final BitmapFactory.Options options = new BitmapFactory.Options();    options.inJustDecodeBounds = true;    BitmapFactory.decodeFile(filePath, options);    // Calculate inSampleSize    options.inSampleSize = calculateInSampleSize(options, 480, 800);    // Decode bitmap with inSampleSize set    options.inJustDecodeBounds = false;    return BitmapFactory.decodeFile(filePath, options);}//把bitmap转换成Stringpublic static String bitmapToString(String filePath) {    Bitmap bm = getSmallBitmap(filePath);    ByteArrayOutputStream baos = new ByteArrayOutputStream();    bm.compress(Bitmap.CompressFormat.JPEG, 40, baos);    byte[] b = baos.toByteArray();    return Base64.encodeToString(b, Base64.DEFAULT);}
0 0