如何解决某些图像上的颤振“Infinity or NaN toInt”
Posted
技术标签:
【中文标题】如何解决某些图像上的颤振“Infinity or NaN toInt”【英文标题】:How to solve flutter "Infinity or NaN toInt" on some images 【发布时间】:2021-02-14 09:45:00 【问题描述】:我有一个应该只显示图像的简单项目。我应该提一下,这对 Flutter 来说是非常新的。
下面是main.dart
import 'package:flutter/material.dart';
import 'package:flutter_shoe/ColorHolder.dart';
import 'package:flutter_shoe/home_page.dart';
import 'package:flutter_shoe/profile_page.dart';
void main()
runApp(MyApp());
class MyApp extends StatelessWidget
@override
Widget build(BuildContext context)
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primaryColor: primaryColor,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: HomePage(),
);
这里是 HomepageClass
import 'package:flutter/material.dart';
class HomePage extends StatelessWidget
@override
Widget build(BuildContext context)
return Scaffold(
appBar: AppBar(
leading: Icon(Icons.menu),
title: Text("Home"),
centerTitle: true,
actions: [
Icon(Icons.circle_notifications),
],
),
body: Container(
child: Image.asset(
"assets/imgs/curved.png",
// "assets/imgs/doc.jpg",
width: 500,
height: 200,
),
),
);
上面的代码给了我错误
Unsupported operation: Infinity or NaN toInt
错误指向包含图片资源的行。
我已经尝试使用几个不同的图像,它可以很好地处理一些图像,但在其他图像上会出错。我需要它始终处理所有图像。
示例工作图像的尺寸为 626 x 626,格式为 jpg 示例非工作图像的尺寸为 1080 x 768,并且是 png
我尝试用 Expandable 替换容器。 我已将高度和宽度值附加到容器中。还是行不通 我已将图像的宽度和高度更改为 double.maxFinite。不工作。
我在他们的文档上找不到任何有用的东西。
有人帮我知道我哪里出错了。
【问题讨论】:
【参考方案1】:我解决了。事实证明,添加新资产后我不应该使用热重载。我所需要的只是停止该项目并重新运行它。
【讨论】:
【参考方案2】:我无法重现您的错误,建议您尝试以下代码:
body: SingleChildScrollView(
child: Container(
child: Image.asset("assets/imgs/curved.png",
fit: BoxFit.cover,
width: 500,
height: 200,
),
),
),
使用 Image.network 是否也会给您一个错误。请检查下图是否有错误:
Image.network("https://placeimg.com/1080/768/any",
width: 500, height: 200)
【讨论】:
感谢您的帮助。问题是因为我在添加新资产后使用了热重载。我需要重新启动整个项目。【参考方案3】:您是否将资产放在 pubspec.yaml 文件中?
flutter:
assets:
- assets/imgs/
【讨论】:
是的,我已经添加了以上是关于如何解决某些图像上的颤振“Infinity or NaN toInt”的主要内容,如果未能解决你的问题,请参考以下文章
无论如何,我可以通过颤振解决在 pos 系统上打印的图像问题吗?
如何在加载图像时添加进度条或循环进度此代码(颤振)?我尝试了不同的解决方案,但没有运气:(
ValueError: Input contains NaN, infinity or a value too large for dtype(‘float64‘).
ValueError: Input contains NaN, infinity or a value too large for dtype(‘float64‘).