Android Bitmap Load decodeFromFile(String path, int reqWidth, int reqHeight)

Here you can find the source of decodeFromFile(String path, int reqWidth, int reqHeight)

Description

decode From File

Declaration

public static final Bitmap decodeFromFile(String path, int reqWidth,
            int reqHeight) 

Method Source Code

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.ExifInterface;
import android.media.ThumbnailUtils;
import android.util.Base64;
import android.view.View;

public class Main{
    public static final Bitmap decodeFromFile(String path) {
        return decodeFromFile(path, 0, 0);
    }/* w ww .j a v a  2s.  c o  m*/
    public static final Bitmap decodeFromFile(String path, int reqWidth,
            int reqHeight) {
        final BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(path, options);
        options.inSampleSize = inSampleSize(options, reqWidth, reqHeight);
        options.inJustDecodeBounds = false;
        return BitmapFactory.decodeFile(path, options);
    }
    public static final int inSampleSize(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) {
            if (width > height) {
                inSampleSize = Math.round((float) height
                        / (float) reqHeight);
            } else {
                inSampleSize = Math.round((float) width / (float) reqWidth);
            }

            final float totalPixels = width * height;
            final float totalReqPixelsCap = reqWidth * reqHeight * 2;

            while (totalPixels / (inSampleSize * inSampleSize) > totalReqPixelsCap) {
                inSampleSize++;
            }
        }
        return inSampleSize;
    }
}

Related

  1. GetBitmap(String imageUrl)
  2. base642Bitmap(String string)
  3. decodeBitmap(Resources res, int resId)
  4. decodeBitmap(Resources res, int resId, int reqWidth, int reqHeight)
  5. decodeFromFile(String path)
  6. decodeSampledBitmapFileForSize(File f, int reqWidth, int reqHeight)
  7. decodeSampledBitmapFromBytes(byte[] res, int reqWidth, int reqHeight)
  8. decodeSampledBitmapFromBytesForCurrentScreen( byte[] res, Context ctxt)
  9. decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight)