flutter_image_clip 0.7.4
flutter_image_clip: ^0.7.4 copied to clipboard
A reusable Android and iOS Flutter image clipping library with a ready-to-use crop editor UI and image processing APIs.
0.7.4 #
- 改用 pub.dev README 会稳定渲染的 Markdown 图片语法展示两张截图。
- 进一步压缩发布截图到
360x800,减小页面展示尺寸和下载体积。
0.7.3 #
- 将发布截图替换为更小的 WebP 资源,降低 README 和 pub.dev 图片加载体积。
- README 预览区同时展示全屏编辑器和嵌入式示例两张截图。
0.7.2 #
- Move the iOS plugin source into the Swift Package Manager layout while keeping CocoaPods support.
- Run Android and iOS native decode work on background queues before returning MethodChannel results.
- Add the missing
ImageClipEditorControllerconstructor dartdoc. - Document real-device release validation and repository security hardening tasks.
- Add pub.dev screenshots for the fullscreen editor and embedded example lab.
0.7.1 #
- Fixed release-check golden flakiness on remote Linux / Flutter stable by allowing a 1% pixel tolerance while keeping layout and semantics tests as stronger guards.
- Added a gated
Publish to pub.devjob to the release workflow. Tagged packages publish through pub.dev GitHub Actions OIDC only after validation passes andPUB_DEV_AUTOMATED_PUBLISHINGis enabled. - Added process RSS delta tracking to the benchmark baseline to catch large-image memory regressions.
- Added a public API dartdoc check so new public APIs cannot be added without documentation.
- Added Dependabot, Dependency Review, issue forms, a pull request template, and
SECURITY.md. - Added release, troubleshooting, migration, and real-device validation guides.
0.7.0 #
- Moved Android integration tests into
example/integration_testso generated root app scaffolding no longer interferes with plugin compilation. - Moved the integration test dependency into the example app and removed it from the root package.
- Removed the bundled Inter font from the editor. The editor now inherits the host app font, reducing package size and style intrusion.
- Updated compatibility constraints to Dart
>=3.10.0 <4.0.0and Flutter>=3.38.1. - Added CI coverage for both the minimum supported Flutter version and the latest stable Flutter version.
- Added iOS simulator integration tests. Android and iOS integration tests both cover the editor flow and native sampled decode.
- Mapped
ImageClipPlatformDecodeAdapterplatform errors toImageClipUnsupportedFormatException,ImageClipPlatformException, orImageClipDecodeException. - Preserved original source dimensions in Android native sampled decode so preview crop coordinates map back to the source image reliably.
- Added layout tokens to
ImageClipEditorThemefor the top bar, bottom bar, save button, and aspect-ratio controls. - Added the iOS
PrivacyInfo.xcprivacymanifest. - Tightened
.pubignoreso test, benchmark, tool, and generated integration scaffolding files are not published. - Added integration recipes, a platform matrix, and an accessibility checklist.
- Reworked the public API snapshot to use analyzer-based exported API discovery.
- Added command-level and test-level timeouts to Android integration tests with clearer timeout failures.
- Expanded README compatibility and public import guidance.
0.6.6 #
- Converted the package into an Android/iOS Flutter plugin with the built-in
ImageClipPlatformDecodeAdapter. - Added platform-side sampled decode and format normalization entry points for HEIC/HEIF and other system-supported image formats.
- Added
ImageProcessor.probeFile,decodeFile,processFile, andwriteImageToFile. File input is read inside the worker isolate to reduce UI-isolate byte copying. - Added Android emulator integration tests for loading, preview thumbnails, rotation, flipping, saving, and Chinese labels.
- Added JPEG preview decode and file-path crop/export cases to the benchmark suite.
- Added
tool/check_api_snapshot.dartandtool/api_snapshot.jsonto guard key public APIs in CI. - Split the editor save flow into
editor_save.dartto reduce the maintenance load ineditor.dart. - Added
ImageClipEditorLabels.englishandImageClipEditorLabels.zhHans. - Added tag-triggered release checks that run format, analysis, tests, benchmarks, API docs, and pub dry-run before publishing.
0.6.5 #
- Added
ImageClipDecodeSettingsfor preview decode target long-side configuration. - Added
sourceWidthandsourceHeightmetadata toEditedImage. - Added
ImageProcessor.decodePreviewBytesanddecodePreviewBytesTask. - Added
ImageClipDecodeAdapterso callers can normalize platform-only formats or run platform sampled decode before Dart decoding. - Added
ImageClipEditor.previewDecodeSettings. The editor can use a smaller preview image while saving still maps the crop region back to original source bytes. - Added map, copy, and equality helpers to
ImageClipResult,CropRegion, and core settings models. - Added benchmark regression checking through
--check benchmark/baseline.json. - Added Android debug APK and iOS no-codesign debug builds to CI.
- Added tests for preview-to-source export, large text landscape layout, decode adapters, and model stability.
0.6.4 #
- Changed editor rotate and flip actions to update preview state immediately. The final save maps the preview crop area back to source pixels and exports once.
- Added
ImageClipCropTransformandImageClipDimensionsfor reusable rotation/flip crop coordinate mapping. - Added
previewRegion,flippedHorizontally, andflippedVerticallymetadata toImageClipResult. - Added
outputSettingssupport toImageProcessor.rotate,rotateRight,flipHorizontal,flipVertical, and their task APIs. - Added async
flipHorizontalandflipVerticalAPIs toImageClipSession, and addedoutputSettingssupport torotate.
0.6.3 #
- Added HEIC/HEIF header detection and typed
ImageClipUnsupportedFormatExceptionfailures before pure Dart decoding. - Added
ImageClipDecodedSessionfor keeping decoded pixels in memory across multiple small-image operations. - Added Semantics for the editor preview, crop frame, tool buttons, and aspect-ratio controls.
- Added a default editor golden test for visual regression coverage.
0.6.2 #
- Added
ImageClipSessionfor holding current image state across continuous editing flows. - Added session-level task cancellation.
- Organized the example as a standalone Flutter app with its own
example/pubspec.yaml. - Added mobile image fixture tests for EXIF orientation values 1-8, transparent PNG, and corrupt JPEG input.
0.6.1 #
- Added
ImageProcessor.probeBytesandImageClipImageInfofor detecting PNG, JPEG, GIF, and WebP format and dimensions before full decoding. - Added header-based input pixel limit checks before decode to reduce memory pressure from oversized images.
- Switched large isolate byte messages to
TransferableTypedData. - Added timeout support to
ImageClipTask.fromFuture. - Added
ImageClipEditor.onProgressand wired editor progress UI to background task progress. - Updated the example with gallery selection, sample loading, task cancellation, input probe details, and export preview.
- Added
--jsonoutput to the benchmark command.
0.6.0 #
- Limited published platform support to Android and iOS.
- Updated README and pubspec descriptions to remove desktop and web support implications.
- Split editor UI code into controller, editor, preview panel, toolbar, result page, theme, labels, and painter files.
- Added
ImageClipTask,ImageClipTaskOptions, andImageClipTaskProgressfor cancellation, progress, and timeouts. - Added
ImageClipEditorController.cancelTask(). - Added
benchmark/image_processor_benchmark.dartcovering decode, rotate/crop/JPEG export, and large-image downscale cases. - Added tests for task progress and cancellation.
0.5.0 #
- Added
ImageClipPipelineandImageClipPipelineStepfor batching decode, rotate, crop, flip, resize, color adjustment, and export into one background task. - Added
ImageProcessor.processPipelineandprocessBytesto reduce repeated decode/encode work. - Refactored image processing into dedicated exception, model, pipeline, isolate job, pixel operation, and sample image modules.
- Kept existing single-step APIs such as
cropRegion,rotate,adjustColor, andexportJpeg. - Added pipeline tests for raw byte input and existing
EditedImageinput.
0.4.0 #
- Added
ImageClipEditorControllerfor loading images, clearing images, resetting the crop viewport, rotating images, reading the crop region, and triggering crop operations from parent widgets. - Improved editor async lifecycle handling so newer image load requests invalidate older task results.
- Added stale-result protection to crop saving when the current image is replaced while a save is still running.
- Added widget tests for controller-driven flows and out-of-order async image loading.
- Updated README controller integration examples.
0.3.0 #
- Added
ImageClipEditorThemefor configurable editor and result page colors, borders, crop overlays, and framed surface radius. - Added EXIF orientation baking during image decoding so rotated camera photos crop with the expected dimensions.
- Added
ImageClipProcessingSettingsfor input pixel limits, output pixel limits, and automatic downscaling. - Added typed exceptions for decode failures, processing failures, invalid crop regions, and oversized images.
- Improved configurable crop ratio presets so custom ratio frames inherit editor theme tokens.
- Added GitHub Actions CI for formatting, analysis, tests, API docs, and pub dry-run validation.
0.2.0 #
- Added
ImageClipEditorLabelsfor configurable editor, status, and result page copy. - Added
ImageClipAspectRatioso the editor can show custom named crop ratio presets such as square or widescreen crops. - Added
ImageClipOutputSettingsandImageClipOutputFormatfor configurable PNG or JPEG crop output. - Added
ImageProcessor.exportImageandImageProcessor.exportJpeg. - Changed built-in editor and processor messages to English defaults.
0.1.1 #
- Updated the changelog to use English content for pub.dev language checks.
- Added dartdoc comments for the public libraries, image processing APIs, and crop editor APIs.
0.1.0 #
- Initial release of
flutter_image_clip. - Added
showImageClipEditor, a ready-to-use crop editor route API. - Added
ImageClipEditor, an embeddable Flutter crop editor widget. - Added
ImageProcessorimage processing APIs for decoding, cropping, rotating, flipping, resizing, color adjustment, and PNG export. - Added
ImageClipResultwith source image data, cropped image data, crop region metadata, and rotation metadata.