跳至主要內容

ImageFilter.blur 預設平鋪模式自動選擇。

摘要

#

現在後端會自動選擇 ui.ImageFilter.blur 的預設平鋪模式。先前,除非指定了不同的平鋪模式,否則會使用 TileMode.clamp。現在,預設值為 null,並且指定自動選擇,除非指定了特定的平鋪模式。

背景

#

ImageFilter.blur 的 *平鋪模式* 指定套用濾鏡時邊緣像素的處理方式。有四個選項:TileMode.clamp (先前的預設值)、Tilemode.repeatedTileMode.mirrorTileMode.decal。先前,如果未指定行為,ImageFilter 會預設為 clamp 模式,這有時會讓開發人員感到驚訝,因為它並不總是符合預期。

自此變更起,濾鏡會根據上下文自動選擇以下平鋪模式

  • 使用儲存圖層時以及套用至個別形狀繪製時 (drawRect、drawPath 等) 為 decal
  • 使用背景濾鏡時為 mirror
  • 使用 drawImage 時為 clamp

遷移指南

#

只有未指定明確平鋪模式的模糊影像濾鏡會受到此變更的影響。我們認為新的預設值通常更好,並建議移除任何指定的模糊平鋪模式。

遷移前的程式碼

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