跳至主要内容

ImageFilter.blur 默认平铺模式自动选择。

摘要

#

ui.ImageFilter.blur 的默认平铺模式现在由后端自动选择。以前,除非指定了不同的平铺模式,否则使用 TileMode.clamp。现在,默认值为 null,并指定自动选择,除非指定了特定的平铺模式。

背景

#

ImageFilter.blur平铺模式指定了应用滤镜后边缘像素的行为。有四个选项,TileMode.clamp(以前的默认值)、Tilemode.repeatedTileMode.mirrorTileMode.decal。以前,如果未指定行为,ImageFilter 默认使用 clamp 模式,这有时会让开发者感到意外,因为它并不总是符合预期。

从这次更改开始,过滤器会根据上下文自动选择以下平铺模式

  • decal 用于保存图层以及应用于单个形状绘制(drawRect、drawPath 等)时。
  • mirror 用于背景滤镜。
  • clamp 用于 drawImage。

迁移指南

#

只有未指定显式平铺模式的模糊图像过滤器会受到此更改的影响。我们认为新的默认值通常更好,并建议删除任何指定的模糊平铺模式。

迁移前的代码

dart
var filter = ui.ImageFilter.blur(sigmaX: 4, sigmaY: 4, tileMode: TileMode.decal);

迁移后的代码

dart
var filter = ui.ImageFilter.blur(sigmaX: 4, sigmaY: 4);

时间线

#

包含于版本:3.27.0-1.0.pre.30 稳定版发布:尚未

参考文献

#

API 文档

相关问题

相关 PR