private boolean shouldCrop(int width,int height){
  int pixelError=1;
  pixelError+=Math.round(Math.max(width,height) / 1000f);
  return (mMaxResultImageSizeX > 0 && mMaxResultImageSizeY > 0) || Math.abs(mCropRect.left - mCurrentImageRect.left) > pixelError || Math.abs(mCropRect.top - mCurrentImageRect.top) > pixelError || Math.abs(mCropRect.bottom - mCurrentImageRect.bottom) > pixelError || Math.abs(mCropRect.right - mCurrentImageRect.right) > pixelError;
}

private boolean shouldCrop ( int width , int height ) { int pixelError = 1 ; pixelError += Math . round ( Math . max ( width , height ) / 1000f ) ; return ( mMaxResultImageSizeX > 0 && mMaxResultImageSizeY > 0 ) || Math . abs ( mCropRect . left - mCurrentImageRect . left ) > pixelError || Math . abs ( mCropRect . top - mCurrentImageRect . top ) > pixelError || Math . abs ( mCropRect . bottom - mCurrentImageRect . bottom ) > pixelError || Math . abs ( mCropRect . right - mCurrentImageRect . right ) > pixelError ; }
check whether an image should be cropped at all or just file can be copied to the destination path . for each 1000 pixels there is one pixel of error due to matrix calculations etc .
