getGeneratorFromData static method
Implementation
static Future<PaletteGenerator> getGeneratorFromData(Uint8List data) async {
final ImageStream stream = Image.memory(data).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,
),
);
}