如何在 flutter web 中加载一个 tif 图像?

问题描述 投票:0回答:3

如何在 Flutter 中将 .tif 图像读取为图像小部件?

flutter默认是不支持tif的,请问有什么包或者方法可以加载和解码tif图片吗?

flutter image tiff
3个回答
0
投票

前段时间看到这种问题...

您可以解码图像并将其编码为 png 之类的

import 'package:image/image.dart' as imgLib;
imgLib.Decoder dec = imgLib.findDecoderForData(response.data);
Image.memory(imgLib.encodePng(dec.decodeImage(response.data)))

然后您可以在图像中显示 png。

干杯!


0
投票

如果响应数据是字符串,这个代码片段对我有用

import 'package:image/image.dart' as imgLib;
final dec = imgLib.findDecoderForData(base64Decode(url));
Image.memory(
              Uint8List.fromList(
                  imgLib.encodeJpg(dec!.decodeImage(base64Decode(url))!)),
            )

0
投票

可以使用镜像包来做

import 'package:image/image.dart' as imgLib;

//use this to load the tiff file based on the file path
await imgLib.decodeTiffFile('assets/test.tif');

但是我用上面的方法时,一直提示文件路径不存在。所以,我改变了一下,使用了下面的方法。

import 'package:flutter/services.dart';
import 'package:image/image.dart' as imgLib;

final filePath = 'assets/test.tif';
final data = await rootBundle.load(filePath);
Uint8List audioUint8List = data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);
final map = await imgLib.decodeTiff(audioUint8List); 

我必须使用根包读取文件,将其转换为 Uint8List,因为解码函数只读取 Uint8List,然后使用函数 decodeTiff 读取它。

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.