import 'dart:io' as Io;
import 'package:image/image.dart';
void main() {
// Read an image from file (webp in this case).
// decodeImage will identify the format of the image and use the appropriate
// decoder.
Image image = decodeImage(new Io.File('test.webp').readAsBytesSync());
// Resize the image to a 120x? thumbnail (maintaining the aspect ratio).
Image thumbnail = copyResize(image, 120);
// Save the thumbnail as a PNG.
new Io.File('thumbnail.png')
..writeAsBytesSync(encodePng(thumbnail));
}
import 'dart:io';
import 'package:image/image.dart';
void main() {
// Read an image from file (webp in this case).
// decodeImage will identify the format of the image and use the appropriate
// decoder.
Image image = decodeImage(File('test.webp').readAsBytesSync());
// Resize the image to a 120x? thumbnail (maintaining the aspect ratio).
Image thumbnail = copyResize(image, width: 120);
// Save the thumbnail as a PNG.
File('thumbnail.png')..writeAsBytesSync(encodePng(thumbnail));
}
5条答案
按热度按时间ws51t4hk1#
有一个image manipulation package on pub。它甚至包括一个例子,确切地说,你想做什么。
oyxsuwqo2#
**为了 dart **
使用Image包:
使用这个包,您可以加载图像,调整其大小,并将其保存为png:
首先,在pubspec.yaml文件中添加
image
作为依赖项。用法:
如果您想在抖动中使用此图像,请不要使用它。请使用其他解决方案,如**flutter_image_compress或ResizeImage class**。
问:Dart已经有图像压缩库了。为什么要使用本机?
答:由于未知原因,Dart语言中的图像压缩效率不高,即使在发布版本中也是如此。使用isolate不能解决问题。
jckbn6z73#
你可以尝试使用flutter_native_image包。你可以很容易地压缩图像
示例:
qij5mzcb4#
我做了这个功能来缩小图片大小,希望对大家有所帮助
此函数会导致UI冻结,因此使用IsolateWorker时最佳
h5qlskok5#
我过去常常使用dio将文件上传到服务器上
软件包:
flutter_native_image: ^0.0.6+1
dio: ^4.0.6
代码-〉
然后再
灵感源自**Jordan Kotiadis**