Page 1 of 1

SVG 文件可能是Flutter项目中最常见

Posted: Sat Dec 21, 2024 10:47 am
by rakibhasanbd4723
的图形文件。我们使用它们是因为它们的尺寸相对较小,并且能够在不损失质量的情况下进行缩放。有些工具(例如SVGO)可以让我们优化 SVG 文件,使它们变得更轻,并svg_optimizier帮助您在项目中自动执行此过程!

了解我们自己的 SVG 优化开源Flutter包!

svg_optimzier 的故事
在 Droids on Roids 中,我们过去常 巴拉圭电话号码库 常通过 SVGO 工具传递来自设计师的每个 SVG 文件 - 通过在线编辑器或手动在控制台应用程序中传递。这可能很麻烦,而且很容易忘记。

我们立即看到了自动化此过程的空间,并寻找了一种方法来实现这一点,但无法找到一个真正的无缝解决方案。显然,您可以创建一个自定义 Bash 脚本来为您完成此操作,但随后您必须在已经不那么小的 CI/CD 管道中管理另一个步骤。因此,当我们听说 Flutter 3.22 中引入了资产转换器机制时,我们真的很兴奋。这正是我们正在寻找的!

Image


什么是资产转换器?
如果您关注 Flutter 的最新版本,那么您可能已经听说过资产转换器机制。该机制在 Flutter 3.22 中引入,为开发人员提供了大量操作项目中资产的功能。确切地说,资产转换器会在构建时自动转换资产。一旦您将转换器添加到资产或整个资产目录,它就会在您每次运行或构建应用程序时对其进行转换。

简而言之 - 资产转换器在构建时获取每个已定义的资产并应用给定的转换器。如果您想深入了解资产转换器,请参阅官方文档。

它是如何工作的?
那么,svg_optimizer它究竟是如何工作的呢?乍一看,它可能有点复杂,但实际上它非常简单——它利用前面提到的 SVGO 工具来缩小所有 SVG 资产的大小。
首先,让我们查阅官方 SVGO文档并解释一下 SVGO 是什么。

“SVGO 是一个用于优化 SVG 文件的 Node.js 库和命令行应用程序。

SVG 文件,尤其是从矢量编辑器导出的文件,通常包含大量冗余信息。这包括编辑器元数据、注释、隐藏元素、默认或次优值,以及其他可以安全删除或转换而不会影响渲染结果的内容。”

来源:SVGO简介

这正是 SVGO 实际所做的——它删除冗余信息以最小化 svg 文件大小。