【问题标题】:how to compress image size to 5MB in flutter如何在颤动中将图像大小压缩到 5MB
【发布时间】:2021-10-07 11:11:48
【问题描述】:

我正在使用当图像大于 5MB 时抛出错误的 API。现在我想压缩图像大小,如果图像大小大于 5MB,那么它应该压缩到 5MB。除了提到的方法之外,还有什么方法可以做到这一点 ImagePicker.pickImage(source: picker.ImageSource.gallery,imageQuality: 50)

或者imageQuality 究竟是如何工作的如果您知道确切的行为,那么也请提及。

谢谢!

【问题讨论】:

标签: image flutter dart


【解决方案1】:

imageQuality 参数修改图像的质量,范围为 0-100,其中 100 是原始/最高质量。如果 imageQuality 为 null,则返回原始质量的图像。仅某些图像类型(例如 JPEG)以及 Android PNG 和 WebP 支持压缩。如果选取的图像不支持压缩,则会记录一条警告消息。

https://pub.dev/documentation/image_picker/latest/image_picker/ImagePicker/pickImage.html

【讨论】:

    【解决方案2】:

    您可以使用 flutter_image_compress 依赖项。

    看这个例子: https://pub.dev/packages/flutter_image_compress

    【讨论】:

    • 这适用于所有格式的图像吗?
    【解决方案3】:

    在我的解决方案中,尝试使用 SVG 图像而不是 jpg 或 png 它可能会帮助您减小尺寸。 如果您没有找到解决方案,请联系我,我们将尝试解决问题。 SVG 是最高质量的图像,因为它按像素绘制。

    【讨论】:

    • 我需要知道你的问题是否解决了
    • 任何随机光栅图像都不应转换为 SVG,它会大大增加图像大小并且在渲染时会表现得非常糟糕。我认为问题是要求任何一般图像,因此您对使用 SVG 的回答在这里没有帮助。
    • 但是当您的设计师从那里设计应用程序时,您可以拍摄 svg 图像并使您的应用程序更可靠。
    【解决方案4】:

    查看pickImage method 的文档。

    如果指定,图像最多为maxWidth 宽和maxHeight 高。否则,图像将以其原始宽度和高度返回。 imageQuality 参数修改图像的质量,范围为 0-100,其中 100 是原始/最大质量。如果imageQuality 为null,则返回原始质量的图像。仅某些图像类型(例如 JPEG)以及 Android PNG 和 WebP 支持压缩。如果选取的图像不支持压缩,则会记录一条警告消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-29
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多