diff --git a/lib/src/image_providers/photo_provider.dart b/lib/src/image_providers/photo_provider.dart index 9f78235..a2d2113 100644 --- a/lib/src/image_providers/photo_provider.dart +++ b/lib/src/image_providers/photo_provider.dart @@ -11,7 +11,7 @@ class PhotoProvider extends ImageProvider { final String? mimeType; @override - ImageStreamCompleter load(key, decode) { + ImageStreamCompleter loadBuffer(key, decode) { return MultiFrameImageStreamCompleter( codec: _loadAsync(key, decode), scale: 1.0, @@ -21,14 +21,13 @@ class PhotoProvider extends ImageProvider { ); } - Future _loadAsync(PhotoProvider key, DecoderCallback decode) async { + Future _loadAsync(PhotoProvider key, DecoderBufferCallback decode) async { assert(key == this); final file = await PhotoGallery.getFile( mediumId: mediumId, mediumType: MediumType.image, mimeType: mimeType); - final bytes = await file.readAsBytes(); - - return await decode(bytes); + ui.ImmutableBuffer buffer = await ui.ImmutableBuffer.fromUint8List(bytes); + return decode(buffer); } @override diff --git a/lib/src/image_providers/thumbnail_provider.dart b/lib/src/image_providers/thumbnail_provider.dart index 37cd53e..7e7f428 100644 --- a/lib/src/image_providers/thumbnail_provider.dart +++ b/lib/src/image_providers/thumbnail_provider.dart @@ -17,7 +17,7 @@ class ThumbnailProvider extends ImageProvider { final bool? highQuality; @override - ImageStreamCompleter load(key, decode) { + ImageStreamCompleter loadBuffer(key, decode) { return MultiFrameImageStreamCompleter( codec: _loadAsync(key, decode), scale: 1.0, @@ -27,17 +27,17 @@ class ThumbnailProvider extends ImageProvider { ); } - Future _loadAsync( - ThumbnailProvider key, DecoderCallback decode) async { + Future _loadAsync(ThumbnailProvider key, DecoderBufferCallback decode) async { assert(key == this); - final bytes = await PhotoGallery.getThumbnail( + final data = await PhotoGallery.getThumbnail( mediumId: mediumId, mediumType: mediumType, height: height, width: width, highQuality: highQuality, ); - return await decode(Uint8List.fromList(bytes)); + ui.ImmutableBuffer buffer = await ui.ImmutableBuffer.fromUint8List(Uint8List.fromList(data)); + return decode(buffer); } @override