Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Options opts = new BitmapFactory.Options();
- BufferedInputStream bis = new BufferedInputStream(pis);
- bis.mark(1024 * 1024);
- opts.inJustDecodeBounds = true;
- Bitmap bmImg=BitmapFactory.decodeStream(bis,null,opts);
- Log.e("optwidth",opts.outWidth+"");
- try {
- bis.reset();
- opts.inJustDecodeBounds = false;
- int ratio = opts.outWidth/800;
- Log.e("ratio",String.valueOf(ratio));
- if (opts.outWidth>=800)opts.inSampleSize = ratio;
- return BitmapFactory.decodeStream(bis,null,opts);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- return null;
- }
- File photos= new File("imageFilePath that you select");
- Bitmap b = decodeFile(photos);
- 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++;
- }
- //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;
- }
- ImageView img = (ImageView)findViewById(R.id.sdcardimage);
- img.setImageBitmap(b);
Add Comment
Please, Sign In to add comment