diff --git a/lib/src/replaced_element.dart b/lib/src/replaced_element.dart index 6a6bac48cd..02ac5489a2 100644 --- a/lib/src/replaced_element.dart +++ b/lib/src/replaced_element.dart @@ -1,4 +1,5 @@ import 'dart:convert'; +import 'dart:io'; import 'dart:math'; import 'package:chewie/chewie.dart'; @@ -114,6 +115,24 @@ class ImageContentElement extends ReplacedElement { return child; }, ); + } else if (src.startsWith("file:")) { + final File file = File(src.replaceFirst('file:', '')); + precacheImage( + FileImage(file), + context.buildContext, + onError: (exception, StackTrace stackTrace) { + context.parser.onImageError?.call(exception, stackTrace); + }, + ); + imageWidget = Image.file( + file, + frameBuilder: (ctx, child, frame, _) { + if (frame == null) { + return Text(alt ?? "", style: context.style.generateTextStyle()); + } + return child; + }, + ); } else { precacheImage( NetworkImage(src),