首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在颤振MultiImagePicker中指定照片的质量?

如何在颤振MultiImagePicker中指定照片的质量?
EN

Stack Overflow用户
提问于 2020-07-24 08:29:52
回答 2查看 646关注 0票数 3

我需要上传大量的照片,并将这些照片发送到数据库。由于高质量的照片,它需要相当多的时间来完成和上传每一张照片。我不需要很高质量的照片,所以我需要压缩照片。如果我使用类颤振MultiImagePicker,那么最好的解决方案是什么?

代码语言:javascript
复制
List<Asset> pickedImagesList = await MultiImagePicker.pickImages(maxImages: 25, enableCamera: false);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-24 08:57:28

您的包已经提出了一些压缩Asset对象的选项。

代码语言:javascript
复制
List<Asset> pickedImagesList = await MultiImagePicker.pickImages(maxImages: 25, enableCamera: false);
for (Asset asset in pickedImagesList) {
   ByteData assetData = await asset.getThumbByteData(
      width: // desired width,
      height: // desired height,
      quality: //desired quality,
   );
   // Send assetData to your database
}

编辑

我认为这能让你保持高宽比:

代码语言:javascript
复制
double getAspectRatio(double originalSize, double desiredSize) => desiredSize / originalSize;

final aspectRatio = getAspectRatio(asset.originalWidth, imageDesiredWidth);
ByteData assetData = await asset.getThumbByteData(
   width: (asset.originalWidth * aspectRatio).round(),
   height: (asset.originalHeight * aspectRatio).round(),
   quality: //desired quality,
);
票数 2
EN

Stack Overflow用户

发布于 2020-08-07 05:25:45

如果要使用原始宽度和高度而不使用任何操作,请使用

代码语言:javascript
复制
getByteData(quality: 80)

相反,

代码语言:javascript
复制
getThumbByteData(quality: 80)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63069840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档