Android Bitmap Compress decodeToCompressedByteArray(String imageUri)

Here you can find the source of decodeToCompressedByteArray(String imageUri)

Description

decode To Compressed Byte Array

License

Open Source License

Declaration

public static byte[] decodeToCompressedByteArray(String imageUri) 

Method Source Code

//package com.java2s;
//License from project: MIT License 

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

public class Main {
    public static byte[] decodeToCompressedByteArray(String imageUri) {
        Bitmap bitmapOrg = BitmapFactory.decodeFile(imageUri);

        ByteArrayOutputStream bao = new ByteArrayOutputStream();
        //system only stores JPG
        bitmapOrg.compress(Bitmap.CompressFormat.JPEG, 99, bao);
        byte[] ba = bao.toByteArray();

        return ba;
    }/*from   ww  w  .j a v a 2 s. com*/

    @SuppressWarnings("unused")
    private Bitmap decodeFile(File f) {
        try {
            //decode image size
            BitmapFactory.Options o = new BitmapFactory.Options();
            o.inJustDecodeBounds = true;
            BitmapFactory.decodeStream(new FileInputStream(f), null, o);

            //Find the correct scale value. It should be the power of 2.
            final int REQUIRED_SIZE = 70;
            int width_tmp = o.outWidth, height_tmp = o.outHeight;
            int scale = 1;
            while (true) {
                if (width_tmp / 2 < REQUIRED_SIZE
                        || height_tmp / 2 < REQUIRED_SIZE)
                    break;
                width_tmp /= 2;
                height_tmp /= 2;
                scale *= 2;
            }

            //decode with inSampleSize
            BitmapFactory.Options o2 = new BitmapFactory.Options();
            o2.inSampleSize = scale;
            return BitmapFactory.decodeStream(new FileInputStream(f), null,
                    o2);
        } catch (FileNotFoundException e) {
        }
        return null;
    }
}

Related

  1. compressWithWidth(String filePath, int width)
  2. compressBitmap(Bitmap bitmap)
  3. compressToBytes(Bitmap bitmap, int quality)
  4. compress(String srcPath, String dstPath, int maxWidth, int maxHeight, long maxSize, CompressFormat format)
  5. compress(byte[] data, String dstPath, int maxWidth, int maxHeight, long maxSize, CompressFormat format)
  6. downsampleBitmap(FileDescriptor fd, int maxArea)