NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2111 most downloaded on pub.dev
Fastest image resize, crop and compress for Flutter. 3-4x faster than other libraries. Native C code, consistent results on iOS/Android.
Last release 1 months ago
24 Aug 2026
Ships on a steady schedule
a new release about every 5 weeks
Nearly every release is documented
notes for 21 of 21 stable releases
Nothing withdrawn
no release was ever pulled
10 months old
21 releases · first in 2025
One column per month.
ML normalization presets. New NormalizationPreset enum bundles the four values a model family expects from its input tensor (input size, normalization
NormalizationPreset enum bundles the four
values a model family expects from its input tensor (input size,
normalization formula, channel order, tensor layout) for mobileNet,
resNet, efficientNet, yolo and openClip. Read them through
NormalizationPresetX (preset.inputSize, preset.mean, preset.std,
preset.layout, preset.tensorLength, preset.label).BicubicResizer.resizeForModelPreset and resizeForModelPresetAsync turn a
preset into a ready tensor in one call instead of six hand-tuned arguments.
outputWidth/outputHeight override the preset input size for model
variants trained at another resolution.BicubicResizer.resizeBatch,
resizeForModelBatch and resizeForModelPresetBatch process a list of
images in parallel with an ordered result list, a concurrency cap
(defaulting to defaultBatchConcurrency, one isolate per core minus one)
and an onProgress callback fired on the calling isolate.ffi constraint raised to ^2.2.0.flutter_lints raised to ^6.0.0; the package analyzes clean under the
stricter rule set.pub.dev "Documentation" link now points to the hosted docs at codigee.com/open-source/flutter-bicubic-resize.
Documentation: hosted docs at codigee.com/open-source/flutter-bicubic-resize (overview, API reference, advanced usage).
doc/api.md as the markdown source.Replaces auto-tag.yml with release.yml that pushes a v-tag on every main push, auto-bumping the patch version when the current one is already tagged s
Replaces auto-tag.yml with release.yml that pushes a v-tag on every main
push, auto-bumping the patch version when the current one is already
tagged so publish.yml always fires. Ignores android/.gradle/.
BicubicResizer.resizeToFit scales an
image so it fits entirely within a maxWidth x maxHeight box without
distortion or cropping ("contain" scaling), computing the target dimensions
from the image's real size. Images smaller than the box are left untouched
unless allowUpscale: true is passed. EXIF orientation is respected by
default so the result never exceeds the box after rotation.BicubicResizer.computeFitDimensions, a pure, decode-free helper that returns
the fitted BicubicDimensions for a source size and bounding box — usable on
any platform and independently of the native library.BicubicDimensions, an immutable width/height pair with value equality.macOS support. The plugin now builds and links its native C code on macOS, fixing Failed to lookup symbol 'bicubic_resize_rgb' (#3). Adds a macos/ pod
Failed to lookup symbol 'bicubic_resize_rgb' (#3). Adds a
macos/ podspec that reuses the shared cross-platform C sources and registers
macos as an FFI platform. The Dart loader already resolved symbols via
DynamicLibrary.executable() on macOS.FlutterMacOS or Flutter depending
on the platform, so a single source file serves iOS and macOS.Package.swift now also declares the .macOS(10.15) platform.Swift Package Manager support for iOS. The plugin now ships a Package.swift and an SPM-compatible source layout under ios/flutter_bicubic_resize/, res
Package.swift and an SPM-compatible source layout under
ios/flutter_bicubic_resize/, resolving the "does not support Swift Package
Manager" warning in recent Flutter versions (#4). CocoaPods remains supported
via the updated podspec pointing at the same sources.ios/flutter_bicubic_resize/Sources/flutter_bicubic_resize/ with the public C
header exposed through an umbrella module map. The former Swift symbol-retention
registrant was rewritten in Objective-C so the C sources and registrant share a
single SPM target.compileSdk to 36.>=3.5.0 and Flutter >=3.24.0
(required for Swift Package Manager).feat: add ImageFormatX mimeType/fileExtension getters; bump to 1.5.4
feat: add ImageFormatX mimeType/fileExtension getters; bump to 1.5.4
ImageFormatX extension exposing mimeType and fileExtension getters on
ImageFormat.Replace deprecated 'library flutter_bicubic_resize;' directive with modern unnamed 'library;'.
Replace deprecated 'library flutter_bicubic_resize;' directive with modern unnamed 'library;'.
Apply 'dart fix --apply' to example/lib/main.dart (2 unnecessary_brace_in_string_interps). No production code changes.
README install version bump to ^1.5.3.
library flutter_bicubic_resize; directive
with the modern unnamed library; declaration in the barrel file.unnecessary_brace_in_string_interps lint cleanup via
dart fix --apply). No production code changes.docs: bump to 1.5.2 with corrected README versions
docs: bump to 1.5.2 with corrected README versions
chore: bump version to 1.5.1
chore: bump version to 1.5.1
>=3.2.0 <4.0.0>=3.16.0compileSdk: 33 → 35compileSdkVersion → compileSdk)feat: v1.5.0 — getImageInfo, format conversion, file I/O, parameter v…
feat: v1.5.0 — getImageInfo, format conversion, file I/O, parameter v…
getImageInfo() — read image dimensions, format, channels, and EXIF orientation without decoding pixels
BicubicImageInfo class with width, height, channels, format, exifOrientationorientedWidth/orientedHeight for EXIF-corrected dimensionsgetImageInfoAsync()resizeFile() / resizeFileToFile() — File I/O convenience methods
resizeFileAsync(), resizeFileToFileAsync()jpegToPng() / pngToJpeg() — direct format conversionconvertFormat() — auto-detect input and convert to target formatjpegToPngAsync(), pngToJpegAsync(), convertFormatAsync()formatUnknown error code (-6) in BicubicNativeError for unknown/unsupported image formatsflutter_lints from ^3.0.0 to ^4.0.0Async wrappers for all public resize methods using Isolate.run() to avoid blocking the UI thread
Isolate.run() to avoid blocking the UI thread
resizeJpegAsync(), resizePngAsync(), resizeRgbAsync(), resizeRgbaAsync()resizeAsync() (auto-detect format), resizeForModelAsync() (ML preprocessing)-1 for better debugging
BicubicNativeError enum: nullInput (-1), invalidDims (-2), decodeFailed (-3), allocFailed (-4), encodeFailed (-5)BicubicResizeException class with nativeCode, error, and human-readable messageresizeForModel() now throws ArgumentError if any std value is zeroBICUBIC_ERROR_* codes instead of -1 for all errorsBicubicResizeException (implements Exception for backward compatibility)Android 15 compatibility - Added 16KB page alignment for native library
libflutter_bicubic_resize.so alignment from 4KB to 16KB-Wl,-z,max-page-size=16384 linker flag in CMakeLists.txtML preprocessing with normalization - new resizeForModel() method returning Float32List
resizeForModel() method returning Float32List
NormalizationType enum: none (default), simple [0,1], centered [-1,1], imageNet, customChannelOrder enum: rgb (default), bgrTensorLayout enum: hwc (default, TensorFlow), chw (PyTorch)machine-learning topic to pubspec.yamlFormat detection and validation - library now handles unsupported formats
ImageFormat enum (jpeg, png) for supported formatsUnsupportedImageFormatException - thrown for unsupported formats (HEIC, WebP, GIF, etc.)BicubicResizer.detectFormat(bytes) - detect image format from bytesBicubicResizer.resize(bytes: ...) - generic resize with auto-detection, throws exception for unsupported formatsCrop anchor positions (CropAnchor) - crop from any position, not just center
CropAnchor) - crop from any position, not just center
center (default), topLeft, topCenter, topRight, centerLeft, centerRight, bottomLeft, bottomCenter, bottomRightCropAspectRatio) - control crop shape
square (default) - 1:1 aspect ratiooriginal - keep original image proportionscustom - use custom aspect ratio with aspectRatioWidth/aspectRatioHeightEdgeMode) - control how pixels outside bounds are handled
clamp (default) - repeat edge pixelswrap - tile/repeat imagereflect - mirror reflection at edgeszero - black/transparent pixels outsideapplyExifOrientation) - option to disable EXIF orientation correctioncompressionLevel) - adjust compression 0-9 (default: 6)iOS release build crash - Fixed FFI symbol stripping issue that caused "symbol not found" errors in release/archive builds
STRIP_STYLE=non-global)EXIF orientation support for JPEG images - photos from mobile cameras now display correctly
crop: 1.0 on 1920x1080 image now crops to 1080x1080 (not 1920x1080)Optional center crop parameter (crop) for all resize methods
crop) for all resize methodsFixed GitHub repository links in pubspec.yaml
Bicubic resize using native C code (stb_image_resize2)
Your coding agent can read these notes before it upgrades. Set up the MCP server →