@@ -31,13 +31,17 @@ class AssetEntityImageProvider extends ImageProvider<AssetEntityImageProvider> {
3131 /// 选择载入原数据还是缩略图数据
3232 final bool isOriginal;
3333
34+ /// File type for the image asset, use it for some special type detection.
35+ /// 图片资源的类型,用于某些特殊类型的判断
3436 ImageFileType _imageFileType;
3537
3638 ImageFileType get imageFileType => _imageFileType ?? _getType ();
3739
3840 @override
3941 ImageStreamCompleter load (
40- AssetEntityImageProvider key, DecoderCallback decode) {
42+ AssetEntityImageProvider key,
43+ DecoderCallback decode,
44+ ) {
4145 return MultiFrameImageStreamCompleter (
4246 codec: _loadAsync (key, decode),
4347 scale: key.scale,
@@ -56,11 +60,17 @@ class AssetEntityImageProvider extends ImageProvider<AssetEntityImageProvider> {
5660 }
5761
5862 Future <ui.Codec > _loadAsync (
59- AssetEntityImageProvider key, DecoderCallback decode) async {
63+ AssetEntityImageProvider key,
64+ DecoderCallback decode,
65+ ) async {
6066 assert (key == this );
6167 Uint8List data;
6268 if (isOriginal ?? false ) {
63- data = await key.entity.originBytes;
69+ if (imageFileType == ImageFileType .heic) {
70+ data = await (await key.entity.file).readAsBytes ();
71+ } else {
72+ data = await key.entity.originBytes;
73+ }
6474 } else {
6575 data = await key.entity.thumbDataWithSize (thumbSize, thumbSize);
6676 }
0 commit comments