Skip to content
Arthur edited this page May 5, 2016 · 32 revisions

2.1.1

  • Built-in CropImageActivity for quick start and common scenarios.
  • Save cropped image to Uri API saveCroppedImageAsync(Uri).
  • Handle possible out-of-memory in image load by down-sampling until succeed.
  • Minor fixes.

2.0.1 (Beta)

  • Fix counter clockwise rotation resulting in negative degrees (#54).

2.0.0 (Beta)

  • Auto-zoom: zoom-in when crop window takes less than 50% of the image, zoom-out when more than 65%.
  • Handle cropping of non-straight angles rotations for URI loaded images.
  • Improve performance for image rotation.
  • Improve performance for rotation due to exif orientation data.
  • Improve performance for orientation change.
  • Preserve crop window on rotations for straight angles - 90/180/270.
  • Preserve crop window on orientation change.
  • Handle max allowed texture size on device by down-sampling to be within the limit.
  • API breaking changes:
  • Renamed CropImageHelper to CropImage
  • Removed getActualCropRect() and getActualCropRectNoRotation(), replaced by 'getCropPoints()' and 'getCropRect()'.
  • Moved to custom CropImageView.ScaleType for 'setScaleType()'
  • Removed CropShape from getCroppedImage API, added CropImage.toOvalBitmap.
  • Known issues:
  • Boundaries and orientation change for non-straight angle rotation of images.

1.2.5

  • Fix off-by-1 error in cropping rectangle, double verify width == height for 1:1 fixed aspect ratio.

1.2.4

  • add fallback in crop to use BitmapFactory when BitmapRegionDecoder fails

1.2.3

  • Fix getActualCropRect to adjust by sampling size for images loaded from URI.
  • Fix crop window size bounded with fixed aspect ratio and move of a single edge.
  • Added CropImageHelper class to simplify cropping image work.

1.2.2 (beta)

  • Fix setShowCropOverlay(boolean) not working properly.
  • Fix crop window bounds issue when cropping image is too small relative to min/max bounds with fixed aspect ratio.
  • Fix crop window reset on on-screen keyboard show/hide.

1.2.1 (beta)

  • Fix crop window resize bug with fixed aspect ratio
  • Add getRotatedDegrees() to get how much the image was rotated during cropping
  • Add setCropRect(Rect) to set initial cropping window location and size to specific window on the image.

1.2.0 (beta)

Due too large changes in the internals please consider this a beta release, if you use it be sure to test is thoroughly and report any bugs you find (report no bugs will also be awesome) or use 1.1.0 until I feel 1.2.* is stable enough.

  • Rewrite internal crop window handling.
  • Add crop prefix to all customization resources to prevent naming collision (breaking change).
  • Add CropImageView.Guidelines enum of guidelines config instead of integer (breaking change).
  • Change custom attributes types to dimension where appropriate (breaking change).
  • Add showCropOverlay attribute and setShowCropOverlay(boolean) method allowing to hide/show crop overlay UI for animation or element transition.
  • Add cropInitialCropWindowPaddingRatio customization [0 - 0.5) to control initial crop window padding from image borders relative to image size.
  • Add min limit config on cropping window width/height in the UI (cropMinCropWindowWidth, cropMinCropWindowHeight)
  • Add min/max config on cropping image result width/height (cropMinCropResultWidthPX,cropMinCropResultHeightPX,cropMaxCropResultWidthPX,cropMaxCropResultHeightPX)

1.1.1

  • Add customization support for border line, border corner, guidelines and background.
  • Fix progress bar not showing on loading if previously bitmap was directly set.

1.1.0

  • Deprecated setImageUri(Uri).
  • Added setImageUriAsync(Uri) and getCroppedImageAsync() for better handling of slow image loading/decode/cropping.
  • Fixed Save/Restore state handling, proper orientation change expirience.
  • Bug fixes on rotation and bitmap recycled error.

1.0.7

  • Added setSnapRadius(float) allowing to disable snap by setting 0.
  • Nicer rectengular crop border.
  • Fix oval shape rendering on old devices by disabling hardware rendering when required.