解析图像编解码器时抛出 ImageCodecException
ImageCodecException was thrown resolving an image codec
我正在为我的 flutter pwa 使用 1.27.0-4.0.pre
sdk 版本。在升级之前,我使用了 1.24.0-10.2.pre
sdk 版本。在 1.24.0-10.2.pre 版本中,一切都很好,我在使用 Image.network
显示 svg 图像时没有任何问题。但是现在当我启动我的 pwa None 时,我的图像会显示出来 ?
此读取平方器出现而不是图像。我在控制台上收到此错误:
══╡ 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。如果它在过去有效,您可能使用的是 HTML 网络渲染器,您可以在其中稍微使用 SVG,但它不是这样做的,因此存在问题。
我看到您现在正在使用 CanvasKit 渲染器,它处理图像的方式可能与 HTML 渲染器不同,并且消除了使用 SVG 的任何可能性。
您可以使用 flutter_svg
包并仅使用 CanvasKit 渲染器来可靠地使用 SVG。
我正在为我的 flutter pwa 使用 1.27.0-4.0.pre
sdk 版本。在升级之前,我使用了 1.24.0-10.2.pre
sdk 版本。在 1.24.0-10.2.pre 版本中,一切都很好,我在使用 Image.network
显示 svg 图像时没有任何问题。但是现在当我启动我的 pwa None 时,我的图像会显示出来 ?
此读取平方器出现而不是图像。我在控制台上收到此错误:
══╡ 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。如果它在过去有效,您可能使用的是 HTML 网络渲染器,您可以在其中稍微使用 SVG,但它不是这样做的,因此存在问题。
我看到您现在正在使用 CanvasKit 渲染器,它处理图像的方式可能与 HTML 渲染器不同,并且消除了使用 SVG 的任何可能性。
您可以使用 flutter_svg
包并仅使用 CanvasKit 渲染器来可靠地使用 SVG。