heif_converter
Flutter plugin to convert HEIC/HEIF file to PNG/JPEG image.
1.0.7
75K downloads/mo
#1247 most downloaded on pub.dev
joutvhu/heif_converter
What this package is like to depend on
Last release 1 months ago
18 Jul 2026
Release timing varies
gaps range from 4 weeks to 1.5 years
Nearly every release is documented
notes for 8 of 8 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
8 releases · first in 2023
6 releases in the last 12 months
see the full history below
Release timeline
8 releases · Aug 2023 to Jul 2026Releases
latest 8-
1.0.718 Jul 2026Release notes
Open source →What's New
- Fix SPM compilation: Explicitly declare the
FlutterFrameworkdependency inPackage.swiftfor compatibility with Flutter 3.44+. Previously, the build would fail becauseimport Fluttercould not be resolved in the plugin's Swift code.
Release notes
Open source →- Fix SPM compilation by adding
FlutterFrameworkdependency for Flutter 3.44+ compatibility.
- Fix SPM compilation: Explicitly declare the
-
1.0.629 May 2026Release notes
Open source →What's Changed
- iOS Build Fix: Resolved the
Module 'heif_converter' not foundcompilation error by correcting thes.source_filessearch path inheif_converter.podspecto match the restructured Swift source directory layout (ios/heif_converter/Sources/).
Release notes
Open source →- Fix
Module 'heif_converter' not founderror on iOS by correctings.source_filespath in podspec.
- iOS Build Fix: Resolved the
-
1.0.523 May 2026Release notes
Open source →🐛 Bug Fixes
- iOS: Fixed Flutter Swift Package Manager (SPM) compatibility build issue. Renamed the SPM library product from
heif_convertertoheif-converter(kebab-case) inPackage.swiftto match the naming conventions required byFlutterGeneratedPluginSwiftPackage.
📦 What's Changed
- Fix Flutter SPM compatibility by using kebab-case product name in
Package.swift(commitead59470) - Bump version across
pubspec.yaml,README.md,CHANGELOG.md,build.gradle, andheif_converter.podspecto1.0.5
Release notes
Open source →- Fix Flutter SPM compatibility by using kebab-case product name in
Package.swift.
- iOS: Fixed Flutter Swift Package Manager (SPM) compatibility build issue. Renamed the SPM library product from
-
1.0.422 May 2026Release notes
Open source →🛠 Improvements
- Fix iOS SPM Tooling support: Move
Package.swiftandSources/intoios/heif_converter/to match the convention used by Flutter's Swift Package Manager integration. - This ensures the plugin is correctly detected when
enable-swift-package-manageris enabled in Flutter config.
Release notes
Open source →- Move
Package.swiftandSources/intoios/heif_converter/to support Flutter SPM tooling.
- Fix iOS SPM Tooling support: Move
-
1.0.322 May 2026Release notes
Open source →This release introduces official support for Swift Package Manager (SPM) on iOS, bringing the plugin up to date with modern Flutter iOS build tools.
🚀 Features
- iOS: Added Swift Package Manager (SPM) support alongside the existing CocoaPods integration. This allows the plugin to be built and managed more efficiently on newer Flutter versions (by @theo-germain).
⚠️ Breaking Changes / Requirements Update
- iOS: The minimum iOS deployment target has been bumped from
11.0to12.0to align with the Swift Package Manager configuration. Projects still targeting iOS 11 will need to update theirios/Podfileminimum target to iOS 12.0 to continue using the latest versions of this plugin.
Release notes
Open source →- Add Swift Package Manager (SPM) support for iOS alongside the existing CocoaPods integration
- Bump minimum iOS deployment target to 12.0
-
1.0.226 Apr 2026Release notes
Open source →Bug Fixes
iOS
- Fixed a crash caused by incorrect format string in auto-generated output path (
%d.%s→%d.%@). This caused the app to crash or produce a malformed file path when no explicit output path was provided. - Fixed conversion always returning
nil—UIImage(named:)was incorrectly used to load images from a file path. Replaced withUIImage(contentsOfFile:). - Fixed a potential crash from force casting method channel arguments (
as!). Now uses safe casting withguard let, returning a properFlutterErrorif arguments are malformed. - Fixed silent
nilreturn when image encoding fails — the plugin now returns aFlutterErrorwith codeconversionFailedinstead of returningnullto the caller with no explanation. - Fixed output file not being created when the parent directory does not exist.
Android
- Fixed
NullPointerExceptionwhenBitmapFactory.decodeFilefails to decode the input file (unsupported format, corrupt file, or wrong path). Now throws a descriptiveIOException. - Fixed
FileOutputStreamresource leak — the stream is now properly closed using try-with-resources. - Fixed output file not being created when the parent directory does not exist — parent directories are now created automatically with
mkdirs(). - Fixed
Bitmapmemory leak —bitmap.recycle()is now called in afinallyblock after compression to release native memory immediately.
Build & Infrastructure
- Updated Android
compileSdkVersionto 34. - Updated Android Gradle Plugin to 8.2.2 and Gradle wrapper to 8.4 for Java 21 compatibility.
- Migrated example app Android build scripts to the declarative Flutter Gradle plugin (required by Flutter 3.x).
- Updated Flutter SDK constraint from
>=2.5.0to>=3.0.0. - Bumped
flutter_lintsto 5.0.0.
Example App
- Replaced network download with bundled HEIC/HEIF sample files for offline testing.
- Added format selector (PNG / JPEG) and file picker to the example UI.
- Added integration tests covering real file conversion with magic byte verification.
Release notes
Open source →- Fix crash on iOS caused by incorrect output path format string (
%d.%s→%d.%@) - Fix iOS always returning nil by using
UIImage(contentsOfFile:)instead ofUIImage(named:) - Fix iOS force cast crash — use
guard letwith safe cast instead ofas! - Fix iOS silent nil return on conversion failure — now returns
FlutterErrorwithconversionFailedcode - Fix iOS output path failing when parent directories do not exist
- Fix Android
FileOutputStreamresource leak using try-with-resources - Fix Android
NullPointerExceptionwhenBitmapFactory.decodeFilereturns null - Fix Android output path failing when parent directories do not exist
- Fix Android
Bitmapmemory leak — callrecycle()after compression - Update Android
compileSdkVersionto 34 - Update Android Gradle plugin to 8.2.2 and Gradle wrapper to 8.4 for Java 21 compatibility
- Update Android
versionin build.gradle to match pubspec - Migrate example Android build scripts to declarative Flutter Gradle plugin
- Update example app to use bundled sample HEIC/HEIF files instead of downloading
- Update Flutter SDK constraint to
>=3.0.0 - Fix podspec description placeholder text
- Bump
flutter_lintsto 5.0.0
- Fixed a crash caused by incorrect format string in auto-generated output path (
-
1.0.123 Feb 2025 -
1.0.011 Aug 2023