【问题标题】:Dart Image to File in local storageDart 图像到本地存储中的文件
【发布时间】:2021-06-18 16:02:35
【问题描述】:

我正在使用包image 中的Image 类。我必须从 Internet 下载图像并将其保存在本地存储中。然后修改此图像并保存更改。我已经完成了前两个步骤,但是当我保存文件时,它已损坏并且图像查看器无法识别为图像文件。这是更改后保存图像的代码。

  var response = await client.get(urlToImage);
  var img = await File('./network_image.jpg').writeAsBytes(response.bodyBytes);
  Image image = decodeImage(img.readAsBytesSync())

  var f = await File('./image.jpg').writeAsBytes(image.getBytes()); // this doesnt work
  // var f = await File('./image.jpg').writeAsBytes(image.data); // this doesnt work

File.writeAsBytes 需要 List<int> bytesImage.dataImage.getBytes() 分别返回 Uint32ListUint8List

我没有使用 Flutter,只是 dart 用于命令行程序。

【问题讨论】:

    标签: dart dart-io


    【解决方案1】:

    图像对象以未编码的格式存储图像数据。请记住,您使用decodeImage 对其进行了解码。它存储图像的原始颜色。您需要重新编码图像数据,或者您的图像查看器需要处理getBytes 返回的任何图像格式的数据。

    更简单的解决方案可能是重新编码。你似乎想要一个JpegEncoder

    var f = await File('./image.jpg').writeAsBytes(JpegEncoder().encodeImage(image));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多