如何解决某些图像上的颤振“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 系统上打印的图像问题吗?

如何解决颤振上的 pod install 错误?

如何在加载图像时添加进度条或循环进度此代码(颤振)?我尝试了不同的解决方案,但没有运气:(

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‘).

颤振图像自定义形状