簡體   English   中英

圖像文件 flutter 中的圖像壓縮

[英]Image Compression in flutter of a Image File

Future<void> saveLocalStorage(File image) async {

// get file format of the image
String fileFormat = image.path.split('.').last; // jpg

// get path for applications directory
final directory = await getApplicationDocumentsDirectory();

// January 1st, 1970 at 00:00:00 UTC is referred to as the Unix epoch.
int time = DateTime.now().millisecondsSinceEpoch;

// saving image into applications document directory
image.copy('${directory.path}/$time.$fileFormat');
}

這是我目前用來保存圖像文件的代碼。 但在保存之前,我希望壓縮圖像。 我找到了一個使用圖像package 的解決方案,但它的文檔本身說它不夠快,所以我不喜歡使用它。 另一個解決方案是使用image_picker ,其示例代碼是:

ImagePicker imagePicker = ImagePicker();
PickedFile compressedImage = await imagePicker.getImage(
  source: ImageSource.camera,
  imageQuality: 85,
);

我嘗試使用相同的示例,但 source 屬性沒有 File 作為其值,因此我無法進行壓縮。 請提出一些解決方案來完成這項工作。

使用這個庫: Flutter Image Compress

將圖像壓縮為原生插件 (Obj-C/Kotlin)

或未知原因,Dart 語言中的圖像壓縮效率不高,即使在發布版本中也是如此。

謝謝,@Narendra_Nath,您的回答非常有用。
后來,我遇到了這個解決方案, Flutter 壓縮圖像的最佳方式它解釋了 3 個包,其中之一是flutter_image_compress package,它適合我的情況,但我更喜歡使用flutter_native_image package,因為它的語法易於理解。
flutter_image_compress package 有一個必需的屬性,即 output 路徑,這是要預先確定的,這對我來說感覺很困難,所以我使用了flutter_native_image package。
檢查此答案前面提到的解決方案,以了解有關這 3 個包的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM