在之前的“实用片段着色器”系

Data used to track, manage, and optimize resources.
Post Reply
rakibhasanbd4723
Posts: 16
Joined: Sat Dec 21, 2024 7:00 am

在之前的“实用片段着色器”系

Post by rakibhasanbd4723 »

列中,我们一直在学习如何创建令人惊叹的实时视觉效果和动画,并将其应用于我们的小部件甚至设备的摄像头源。虽然这看起来很棒,实现起来也很令人满意,但您可能会认为此类着色器的实际应用是有限的,因为并非每个项目都有开发此类功能的要求或时间。所以这一次,让我们将我们的知识运用到编写一个每个应用程序都可以从中受益的着色器中。

认识 Blurhash
如果应用程序需要一段时间才能加载内容,而等待期间 巴拉圭电话号码库 您看到的只是一个空白屏幕,这难道不令人烦恼吗?如果我告诉您有一个简单的解决方案,您会怎么想?Blurhash!

但 Blurhash 到底是什么?你可以说它是一种图像缩略图生成算法。它是由Wolt发明的。其理念是,当您需要加载和显示图片时,在加载全分辨率图像的同时,您可以显示一个占位符图像来填充空白区域。但不是任何占位符 - 它是原始图片的低分辨率、模糊表示!这就是 Blurhash 所做的 - 它将全尺寸图像转换为短编码字符串,通常长度约为 20-30 个字符,然后可以对其进行解码以显示所述缩略图。

Image


Flutter 中的片段着色器 - Blurhash 示例
Blurhash示例
使用 Blurhash 的方式是,当图片上传到应用的后端时,后端需要计算并保存 Blurhash 字符串以及原始图片。然后,当应用请求加载图片时,服务器将首先使用 Blurhash 字符串进行响应,这将允许应用立即绘制占位符图片,然后继续加载全分辨率图片。

正如您所见,这是对任何应用程序的整体用户体验的一种非常优雅且易于实现的改进。

为什么要费心使用着色器?
虽然 Wolt 尚未正式发布针对 Flutter 的 Blurhash 实现,但在 pub.dev 上快速搜索一下,您可能会发现已经有许多 Blurhash 软件包可供使用。然而,它们似乎都没有使用着色器。它们要么依赖其他平台的原生库和 Flutter 的方法通道来访问它们,要么完全用 Dart 编写自定义实现。这是怎么回事呢?

简短的回答是:这样比较简单。但是这样更好吗?让我们看看:
Post Reply