更新记录

0.0.4(2025-12-09)

  • fix: 修复糊弄问题

0.0.2(2024-12-20)

  • chore: 更新文档

0.0.1(2024-12-20)

  • init
查看更多

平台兼容性

uni-app(4.83)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- 5.0
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - -

uni-app x(4.82)

Chrome Safari Android iOS 鸿蒙 微信小程序
5.0

lime-blur 图片高斯模糊组件

一个功能强大的图片高斯模糊处理组件,支持多种模糊方式和参数调整。可用于实现背景虚化、内容模糊、毛玻璃效果等多种视觉效果。组件提供了API调用和组件调用两种使用方式,适用于不同的应用场景。

文档链接

📚 组件详细文档请访问以下站点:

安装方法

  1. 在uni-app插件市场中搜索并导入lime-blur
  2. 导入后,App端需要自定义基座才能使用

代码演示

离屏API方式

在支持离屏canvas的环境通过API的方式调用,适用于APP、WEB、微信小程序、抖音小程序、支付宝小程序等平台。

import { gaussianBlur,type GaussianBlurOptions } from '@/uni_modules/lime-blur'

gaussianBlur({
  src: 'https://img11.360buyimg.com/seckillcms/s280x280_jfs/t1/129831/4/33281/106962/63c63065F0d8fa250/da5d88be0508fb55.jpg',
  radius: 5,
  success(url) {
    console.log('处理后的图片', url)
  }
} as GaussianBlurOptions)

非离屏API方式

在非离屏canvas的环境支持通过API可传入canvasId,需要先在页面中创建canvas元素。

<canvas id="canvas" canvas-id="canvas" type="2d" :style="{ width: canvasWidth + 'px', height: canvasHeight + 'px'}"></canvas>
import { gaussianBlur, type GaussianBlurOptions } from '@/uni_modules/lime-blur'

const canvasWidth = ref(300)
const canvasHeight = ref(300)

gaussianBlur({
  canvasId: 'canvas',
  component: getCurrentInstance().proxy, // 或this
  src: 'https://img11.360buyimg.com/seckillcms/s280x280_jfs/t1/129831/4/33281/106962/63c63065F0d8fa250/da5d88be0508fb55.jpg',
  radius: 5,
  onSize(width, height) {
    // 监听图片的尺寸,设置canvas尺寸
    canvasWidth.value = width
    canvasHeight.value = height
  },
  success(url) {
    console.log('处理后的图片', url)
  }
} as GaussianBlurOptions)

组件方式

直接使用组件进行图片模糊处理,可以通过滑块动态调整模糊程度。

<image class="image" :src="path" v-if="path" mode="widthFix"></image>
<slider :value="radius" @change="sliderChange" :step="5" :max="100" :min="0" />
<l-blur :radius="radius" gaussian @success="success" :src="src"></l-blur>
const src = '/static/mv2.jpg';
const path = ref('')
const radius = ref(10)

const success = (url) => {
  console.log('url', url)
  path.value = url
}

const sliderChange = (e) => {
  radius.value = e.detail.value
}

快速预览

导入插件后,可以直接使用以下标签查看演示效果:

<!-- 代码位于 uni_modules/lime-blur/components/lime-blur -->
<lime-blur />

插件标签说明

标签名 说明
l-blur 组件标签
lime-blur 演示标签

Vue2使用说明

main.js中添加以下代码:

// vue2项目中使用
import Vue from 'vue'
import VueCompositionAPI from '@vue/composition-api'
Vue.use(VueCompositionAPI)

详细配置请参考官方文档:Vue Composition API

API文档

Props 属性说明

属性名 说明 类型 默认值
src 图片地址,支持网络和本地路径 string -
radius 模糊半径,值越大越模糊 number 0
gaussian 是否使用高斯模糊,false为堆栈模糊,只对非离屏canvas生效 boolean true

Events 事件

事件名 说明 回调参数
success 模糊处理成功时触发 url: string
fail 模糊处理失败时触发 error: any

GaussianBlurOptions 选项

参数 说明 类型 默认值
src 图片地址,网络或本地 string -
radius 模糊半径,越大越糊 number 0
gaussian 是否使用高斯模糊,false为堆栈模糊,只对非离屏canvas生效 boolean true
canvasId canvas 元素的 id 属性 string -
component 组件或页面实例,限定在什么范围内查找id object -
success 处理成功后的回调函数 (url: string) => void -
fail 处理失败后的回调函数 (error: any) => void -
onSize 图片加载后获取尺寸的回调函数 (width: number, height: number) => void -

常见问题

  • 在App端使用需要自定义基座
  • 确保图片资源可以正常访问,网络图片需要确保没有跨域限制
  • 模糊半径过大可能会影响性能,建议根据实际需求适当调整
  • 非离屏canvas方式需要手动设置canvas尺寸

支持与赞赏

如果你觉得本插件解决了你的问题,可以考虑支持作者:

支付宝赞助 微信赞助

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。