image_background_remover 1.0.0
image_background_remover: ^1.0.0 copied to clipboard
A Flutter package that removes the background from images using an ONNX model.
Image Background Remover - Flutter #
⌗ Overview #
A Flutter package that removes the background from images using an ONNX model. The package provides a seamless way to perform image processing, leveraging the power of machine learning through ONNX Runtime. This package works completely offline without any external API dependencies
🌟 Features #
- Remove the background from images with high accuracy.
- Works entirely offline, ensuring privacy and reliability.
- Lightweight and optimized for efficient performance.
- Simple and seamless integration with Flutter projects.
- Add a custom background color to images.
- Customizable threshold value for better edge detection.
🔭 Example #
Getting Started #
🚀 Prerequisites #
Before using this package, ensure that the following dependencies are included in your pubspec.yaml
:
dependencies:
image_background_remover: ^latest_version
Usage #
Initialization #
Before using the removeBg
method, you must initialize the ONNX environment:
import 'package:image_background_remover/image_background_remover.dart';
@override
void initState() {
super.initState();
BackgroundRemover.instance.initializeOrt();
}
Dispose #
Don't forget to dispose the onnx runtime session :
@override
void dispose() {
BackgroundRemover.instance.dispose();
super.dispose();
}
Remove Background #
To remove the background from an image:
import 'dart:typed_data';
import 'package:image_background_remover/image_background_remover.dart';
Uint8List imageBytes = /* Load your image bytes */;
ui.Image resultImage = await BackgroundRemover.instance.removeBg(imageBytes);
/* resultImage will contain image with transparent background*/
🆕 New Feature: Add Background Color #
You can now add a custom background color to images after removing the background.
Usage: #
Uint8List modifiedImage = await BackgroundRemover.instance.addBackground(
image: originalImageBytes,
bgColor: Colors.white, // Set your desired background color
);
API #
Methods #
Method | Description | Parameters | Returns |
---|---|---|---|
initializeOrt() |
Initializes the ONNX runtime environment. Call this method once before using removeBg . |
None | Future<void> |
removeBg(Uint8List imageBytes, { double threshold = 0.5, bool smoothMask = true, bool enhanceEdges = true }) |
Removes the background from an image. | imageBytes - The image in byte array format. threshold - The confidence threshold for background removal (default: 0.5 ). A higher value removes more background, while a lower value retains more foreground. smoothMask - Whether to apply bilinear interpolation for smoother edges (default: true ). enhanceEdges - Whether to refine mask boundaries using gradient-based edge enhancement (default: true ). |
Future<ui.Image> - The processed image with the background removed. |
addBackground({required Uint8List image, required Color bgColor}) |
Adds a background color to the given image. | image - The original image in byte array format. bgColor - The background color to be applied. |
Future<Uint8List> - The modified image with the background color applied. |
⛔️ iOS Issue #
Exception: ONNX session not initialized (iOS Release Mode & TestFlight)
To resolve this issue, update the following settings in Xcode:
Open Xcode and navigate to:
Runner.xcodeproj → Targets → Runner → Build Settings
Under the Deployment section:
Set "Strip Linked Product" to "No"
Set "Strip Style" to "Non-Global-Symbols"
⚠️ Warning #
This package uses an offline model to process images, which is bundled with the application. This may increase the size of your app.
🔗 Contributing #
Contributions are welcome! If you encounter any issues or have suggestions for improvements, feel free to create an issue or submit a pull request.
☕ Support This Project #
If you find this package helpful and want to support its development, you can buy me a coffee! Your support helps maintain and improve this package. 😊