getGeneratorFromPath static method
Future<PaletteGenerator>
getGeneratorFromPath(
- String path
)
Implementation
static Future<PaletteGenerator> getGeneratorFromPath(String path) async {
late final ImageStream stream;
if (path.contains('http')) {
stream = NetworkImage(path).resolve(
const ImageConfiguration(devicePixelRatio: 1.0),
);
} else {
stream = Image.file(File(path)).image.resolve(
const ImageConfiguration(devicePixelRatio: 1.0),
);
}
final Completer<ui.Image> imageCompleter = Completer<ui.Image>();
late ImageStreamListener listener;
listener = ImageStreamListener((ImageInfo info, bool synchronousCall) {
stream.removeListener(listener);
imageCompleter.complete(info.image);
});
stream.addListener(listener);
final ui.Image image = await imageCompleter.future;
final ByteData? imageData = await image.toByteData();
if (imageData == null) {
throw StateError('Failed to encode the image.');
}
return compute<GeneratorData, PaletteGenerator>(
getGeneratorIsolate,
GeneratorData(
encodedImage: EncodedImage(
imageData,
width: image.width,
height: image.height,
),
colorsCount: 2,
),
);
}