滤镜 插件
目前只支持自定义滤镜,后续会有官方的标准滤镜。
适用平台
支持所有平台。
安装插件
需要安装 filter 插件才能使用,点此访问 Github 仓库。
sh
npm install @leafer-in/filter
sh
pnpm add @leafer-in/filter
sh
yarn add @leafer-in/filter
sh
bun add @leafer-in/filter
通过 script 标签引入
通过全局变量 LeaferIN.filter 访问插件内部功能。
html
<script src="https://unpkg.com/@leafer-in/filter@1.4.2/dist/filter.min.js"></script>
html
<script src="https://unpkg.com/@leafer-in/filter@1.4.2/dist/filter.js"></script>
https://unpkg.com 无法访问时,可替换为 https://cdn.jsdelivr.net/npm
自定义滤镜
ts
// #自定义滤镜 [blur 滤镜]
import { Leafer, Rect, Filter } from 'leafer-ui'
import '@leafer-in/filter'
// 注册自定义滤镜
Filter.register('blur', {
apply(filter, _ui, worldBounds, currentCanvas, _orginCanvas, _shape) { // 应用自定义滤镜
currentCanvas.filter = `blur(${filter.blur}px)`
currentCanvas.resetTransform()
currentCanvas.copyWorld(currentCanvas, worldBounds, worldBounds, "destination-atop")
currentCanvas.filter = 'none'
},
getSpread(filter) { // 扩展元素的渲染边界
return filter.blur
}
})
// 使用滤镜
const leafer = new Leafer({ view: window })
const rect = new Rect({
width: 100,
height: 100,
cornerRadius: 30,
fill: 'rgba(50,205,121,0.7)',
draggable: true,
filter: { // 支持多个滤镜 [filter, filter]
type: 'blur', // 对应注册的滤镜名称
blur: 20
}
})
leafer.add(rect)
待续
详细的自定义滤镜教程和说明文档正在完善...