抛出 ImageCodecException 解析图像编解码器
Posted
技术标签:
【中文标题】抛出 ImageCodecException 解析图像编解码器【英文标题】:ImageCodecException was thrown resolving an image codec 【发布时间】:2021-06-07 20:42:34 【问题描述】:我正在使用 1.27.0-4.0.pre
sdk 版本到我的颤振 pwa。在升级之前我使用了1.24.0-10.2.pre
sdk 版本。在 1.24.0-10.2.pre 版本中一切都很好,我没有任何问题显示带有Image.network
的 svg 图像。但是现在当我启动我的 pwa 时,我的图像都没有显示?
这个 read squarer 出现而不是 image 。我在控制台上收到此错误:
══╡ EXCEPTION CAUGHT BY IMAGE RESOURCE SERVICE ╞════════════════════════════════════════════════════
The following ImageCodecException was thrown resolving an image codec:
Failed to decode image data.
Image source: http://localhost:33033/assets/svgs/splash.svg
When the exception was thrown, this was the stack:
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 236:49 throw_
lib/_engine/engine/canvaskit/image.dart 102:7 createDefault
lib/_engine/engine/canvaskit/skia_object_cache.dart 141:41 new
lib/_engine/engine/canvaskit/image.dart 92:3 decodeFromBytes
lib/_engine/engine/canvaskit/image.dart 75:53 <fn>
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 324:14 _checkAndCall
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 329:39 dcall
dart-sdk/lib/html/dart2js/html_dart2js.dart 37283:58 <fn>
dart-sdk/lib/async/zone.dart 1370:13 _rootRunUnary
dart-sdk/lib/async/zone.dart 1265:19 runUnary
dart-sdk/lib/async/zone.dart 1170:7 runUnaryGuarded
dart-sdk/lib/async/zone.dart 1207:26 <fn>
Image provider: NetworkImage("assets/svgs/splash.svg", scale: 1)
Image key: NetworkImage("assets/svgs/splash.svg", scale: 1)
当我在 chrome 上打开 http://localhost:33033/assets/svgs/splash.svg
时,此图像存在并已加载。有什么问题?
【问题讨论】:
flutter 不支持 SVG。 在1.24.0-10.2.pre
版本中它的工作,我没有任何问题@ChristopherMoore
看我的回答..
【参考方案1】:
默认情况下,Flutter 不支持不 SVG。如果它在过去有效,您可能会使用 HTML Web 渲染器,您可以在其中稍微使用 SVG,但它不是这样做的,因此存在问题。
我看到您现在正在使用 CanvasKit 渲染器,它可能会以不同于 HTML 渲染器的方式处理图像,并消除了使用 SVG 的任何可能性。
您可以使用flutter_svg
包并仅使用 CanvasKit 渲染器,以尽可能可靠地使用 SVG。
【讨论】:
我删除Image.network
并使用 flutter_svg
并显示 svg。但是其他浏览器可以这样显示svg吗? @ChristopherMoore
@CyrustheGreat 你能改一下这个问题吗?不是很清楚。你是在问是否所有浏览器都支持这个?
是@ChristopherMoore
@CyrustheGreat 我不能说全部,但我猜大多数主要的桌面和移动浏览器。如果支持 Flutter Web,则假设您仅使用 CanvasKit 渲染器,则可能支持此 SVG。以上是关于抛出 ImageCodecException 解析图像编解码器的主要内容,如果未能解决你的问题,请参考以下文章
解析 RSS 提要最近一直抛出文档类型定义 (DTD) 错误