public static Bitmap revitionImageSize(String path) throws IOException {
  BufferedInputStream in = new BufferedInputStream(new FileInputStream(
    new File(path)));
  BitmapFactory.Options options = new BitmapFactory.Options();
  options.inJustDecodeBounds = true;
  BitmapFactory.decodeStream(in, null, options);
  in.close();
  int i = 0;
  Bitmap bitmap = null;
  while (true) {
   if ((options.outWidth >> i <= 1000)
     && (options.outHeight >> i <= 1000)) {
    in = new BufferedInputStream(
      new FileInputStream(new File(path)));
    options.inSampleSize = (int) Math.pow(2.0D, i);
    options.inJustDecodeBounds = false;
    bitmap = BitmapFactory.decodeStream(in, null, options);
    break;
   }
   i += 1;
  }
  return bitmap;
 }