Image Crop & Compress

Native image power.
Flutter-simple API.

A modular toolkit for crop, rotate, resize, convert and compress workflows—built to keep expensive pixel processing away from the Flutter UI thread.

SwiftKotlinFlutter
Adaptive editor

One editing experience, shaped for every screen.

The built-in editor adapts its controls and workspace for phones and tablets, with theming hooks for your own product language.

Image Crop & Compress phone editor
Phone
Image Crop & Compress tablet portrait editor
Tablet portrait
Image Crop & Compress tablet landscape editor
Tablet landscape

Precision cropping

Gesture-aware crop bounds, rotation tracking, aspect ratios and responsive controls.

Native performance

Pixel work runs through Swift and Kotlin instead of consuming the Flutter UI thread.

Smart compression

Compress by output quality or enforce a practical file-size target for uploads.

Fluent processing

Crop, rotate, flip, resize, convert and strip metadata through one pipeline.

Adaptive editor

A themeable editor with phone and tablet layouts, gestures, auto-zoom and controls.

Useful result model

Receive the file, path, bytes, dimensions, size and MIME type without extra conversions.

Why it is fast and reliable

Modular Flutter surface. Native processing underneath.

Public API

image_crop_compress

A focused Flutter entry point for the interactive editor and headless pipeline.

Core contracts

image_crop_compress_core

Typed operations, result models and platform interfaces keep behavior explicit.

Adaptive UI

image_crop_compress_ui

Editor controller, crop geometry, handles, grids, toolbar tools and themes are isolated from native processing.

Android

Kotlin engines

Dedicated crop, resize, compress, convert and metadata engines perform pixel work on Android.

iOS

Swift engines

Matching native engines provide the processing implementation for iPhone and iPad.

Quality gates

Tests and examples

Core, UI and platform tests sit alongside a working sample app and real adaptive layouts.

image_pipeline.dart
final result = await ImageProcessor(file)
  .crop(ratio: CropRatio.square)
  .rotate(degrees: 90)
  .resize(width: 1080)
  .compress(quality: 85, maxSizeKB: 512)
  .save();
Processing path
Flutter APIPlatform channelSwift / Kotlin engines

Large images do not need to be decoded and re-encoded by Dart, reducing memory pressure and protecting interface responsiveness.

Why we built it
01

The pain

Heavy image decode and encode work can stall animation frames and consume too much memory on modest devices.

02

The decision

Move processing into small native engines while keeping one fluent, typed Flutter API.

03

The outcome

A themeable editor and headless pipeline that share the same operations and predictable result model.

Available on pub.dev

Image Crop & Compress

Native-first image processing for Android and iOS, with an adaptive editor and fluent headless pipeline.

Add to your Flutter app