我想将 .jpg 或 .png 文件转换为 .webp。不幸的是图像包只支持webp读取而不支持写入。
一种解决方案是将linux二进制文件添加到flutter(cwebp)中,但如何顺利执行?我查了一下,发现这个问题一年多前就被问过,但仍然没有答案
我愿意接受任何建议,最终目标并不是格式本身,而是在手机分辨率上实现整体良好质量的最低文件大小。
Flutter 有一个压缩包,称为
flutter_image_compress
。它有一个用于网页图像的压缩器。
Future<Uint8List> testComporessList(Uint8List list) async {
final result = await FlutterImageCompress.compressWithList(
list,
minHeight: 1080,
minWidth: 1080,
quality: 96,
rotate: 270,
format: CompressFormat.webp,
);
print(list.length);
print(result.length);
return result;
}
我参加聚会有点晚了,但 4 年后,leancode 制作了一个图像转换器,用于将资产图像转换为 webp。在酒吧搜索。我简单地查看了源代码,似乎 github 操作正在复制 cwebp 可执行文件。他们通过 dart:ffi 与其进行通信。也许可以利用这一点来创建到 webp 的按需转换,而不仅仅是您的资产。 https://github.com/leancodepl/flutter_webp