decode Bitmap To Compressed Byte Array - Android android.graphics

Android examples for android.graphics:Bitmap Operation

Description

decode Bitmap To Compressed Byte Array

Demo Code


//package com.java2s;
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;
    }/* w w w  . ja va2 s .c  om*/

    @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 Tutorials