ImageFilter.blur 默认平铺模式自动选择。
概述
#现在,ui.ImageFilter.blur
的默认平铺模式由后端自动选择。以前,除非指定了不同的平铺模式,否则会使用 TileMode.clamp
。现在,默认值为 null
,除非指定了特定的平铺模式,否则表示自动选择。
背景
#ImageFilter.blur
的平铺模式指定了应用于滤镜的边缘像素会发生什么。有四个选项:
TileMode.clamp
(以前的默认值)Tilemode.repeated
TileMode.mirror
TileMode.decal
以前,如果没有指定行为,ImageFilter
会默认使用 clamp
模式。这有时会让开发者感到惊讶,因为它并不总是符合预期。
从本次更改开始,滤镜会根据上下文自动选择以下平铺模式:
- 在使用保存图层以及应用于单个形状绘制(例如
drawRect
和drawPath
)时选择decal
。 - 在使用背景滤镜时选择
mirror
。 - 在
drawImage
中选择clamp
。
迁移指南
#只有未明确指定平铺模式的模糊图像滤镜会受到此更改的影响。
我们认为新的默认值通常更好,并建议移除任何已指定的模糊平铺模式。
迁移前的代码
dart
final filter = ui.ImageFilter.blur(sigmaX: 4, sigmaY: 4, tileMode: TileMode.decal);
迁移后的代码
dart
final filter = ui.ImageFilter.blur(sigmaX: 4, sigmaY: 4);
时间线
#已在版本中发布: 3.28.0-0.1.pre
稳定版发布于: 3.29
参考资料
#API 文档
相关问题
相关 PR