🎨 image_palette_extractor
A Flutter plugin for extracting the dominant color or a color palette from an image, ideal for dynamic UI effects similar to Spotify or Apple Music.
🚀 Installation
Add to your pubspec.yaml:
dependencies:
image_palette_extractor: ^0.0.1
📦 Required dependencies
dependencies:
image: ^4.0.17
http: ^1.1.0
🧠 Features
| Method | Description |
|---|---|
extractDominantColorFromUrl |
Returns the most frequent color from an image |
extractPaletteFromUrl |
Returns a list of dominant colors for gradients |
✨ Example usage
🎯 Dominant color
final color = await extractDominantColorFromUrl('https://example.com/image.jpg');
if (color != null) {
print('Dominant: ${color.red}, ${color.green}, ${color.blue}');
}
🎨 Color palette
final palette = await extractPaletteFromUrl('https://example.com/image.jpg', count: 3);
for (final color in palette) {
print('Color: ${color.value.toRadixString(16)}');
}
🖌️ Apply as gradient background
Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: palette,
begin: Alignment.topLeft,
end: Alignment.bottomRight,
),
),
child: const Text('Dynamic background'),
)
✅ Running tests
flutter test
📁 Project structure
lib/
├── image_palette_extractor.dart // Main export file
└── src/
├── image_loader.dart // Loads and decodes images
└── palette_extractor.dart // Color extraction logic