【问题标题】:How to convert Image to byte-array?如何将图像转换为字节数组?
【发布时间】:2023-03-09 15:08:01
【问题描述】:

我正在使用 HTML 中的 base64 图像来呈现 PDFViews 中的图像。在某些情况下,我必须动态更改 png/svg 图像的颜色。那么,我想知道如何更改图像的色调并在 base64 中转换该图像

如何将该图像图标更改为 base64 字符串,我们将使用 HTML 将其呈现为 pdf。

Image mImage = Image.asset(
  "assets/images/ic_planet.png",
  color: Color(int.parse("999999")),
); //How to do after this?

【问题讨论】:

  • Uh ... 1) 解码 base64 文本 2) 使用库读取二进制图像并调整颜色,3) 重新保存二进制文件,4) 将保存的图像文件重新编码回base64 测试
  • 是的,如何实现呢?我是初学者。

标签: image flutter dart tint tobase64string


【解决方案1】:

将 Image 对象转换为字节数组。

format 参数指定返回字节的格式。

Official Doc.

Future<ByteData> toByteData({ImageByteFormat format = ImageByteFormat.rawRgba}) {
  return _futurize((_Callback<ByteData> callback) {
    return _toByteData(format.index, (Uint8List encoded) {
      callback(encoded?.buffer?.asByteData());
    });
  });
}

【讨论】:

    【解决方案2】:
      RaisedButton(
     onPressed: () async {
     List<int> imageBytes = await sampleImage.readAsBytes();
     base64Image =  base64Encode(imageBytes);
     print(base64Image);},), SizedBox(height: 30,),
     Image.memory(base64Decode(base64Image)),
    

    当您将文件应用为 readAsBytes 时,您将获得 imagesBytes,然后您可以轻松转换为 base64Encode。

    【讨论】:

    • 如果有任何疑问,请在这里解释?
    • 没有为“Image”类定义方法“readAsBytes”。尝试将名称更正为现有方法的名称,或定义名为“readAsBytes”的方法。dart(undefined_method)
    • 请不要只发布代码作为答案,而是说明您的代码的作用以及它如何解决问题的问题。带有解释的答案通常质量更高,更有可能吸引投票。
    猜你喜欢
    • 1970-01-01
    • 2011-04-17
    • 2011-06-01
    • 1970-01-01
    • 2021-07-17
    相关资源
    最近更新 更多