解决全屏Blur白边问题

8 篇文章 0 订阅
3 篇文章 0 订阅

还是在写vtuber-music时候遇到的这个问题,背景的全屏图片需要模糊,但是反复论证filter: blur()只能作用于窗口范围,不能通过margin或者top,left的方式顶出去,而backdrop的方式性能差而且兼容性又不好,所以试来试去找到个办法

效果图

 

Vue特别方法(css伪类)

vue遇到的问题是需要动态刷新背景,而在vue里的css刷新图片url部分是不会携带background-size这个属性的,所以图片变更的代码里带了background-size如下

xxx.background = 'url(' + background.src + ') no-repeat center center/cover fixed'
// 这里/cover就是background-size
			

而我刚刚说到blur只作用于窗口内,所以无论backfround怎么移动,白边始终都会有,而伪类会解决这个问题,代码如下:

.bg {
		position: absolute;
		margin: 0;
		padding: 0;
		width: 100%;
		height: 100%;
		top: 0;
		left: 0;
		user-select: none;
		transition: background 0.5s;
		overflow: hidden;
		
		z-index: 0;
		&:after{
			content: '';
			position: absolute;
			width: 130%;       
			height: 130%;
			left: 0;
			top: 0;
			z-index: 1;
			/*backdrop-filter: blur(3rem);*/
			filter: blur(2rem);
			transform: translate(-3rem,-3rem);
			background: inherit;
			background-size: 200% 200%;
		}
	}

/* 这里的 width,height 130% 只是个估算值,要想精细控制建议用 calc() */

用top和left顶住去

这就很简单易懂了

.bg {
		position: absolute;
		margin: 0;
		padding: 0;
		width: 130%;
		height: 130%;
		top: -3rem;
		left: -3rem;
		user-select: none;
		filter: blur(3rem);
		/*transform: translate(-3rem,-3rem);*/  // 用这里的transform也行
		transition: background 0.5s;
		overflow: hidden;
	}

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
均值模糊(Mean Blur)是一种图像模糊处理方法,它使用一个卷积核,其中所有权重系数都相等。在OpenCV中,可以使用Blur函数来实现均值模糊。该函数接受输入图像、输出图像、卷积核大小、锚点和边缘填充方式等参数。\[1\] 中值模糊(Median Blur)是另一种图像模糊处理方法,它使用核大小图像的中间值(排序后取中间值)来填充像素。与均值模糊不同,中值模糊可以更好地保留图像的边缘信息。在OpenCV中,可以使用MedianBlur函数来实现中值模糊。该函数接受输入图像、输出图像和核大小等参数。\[2\] 双边模糊(Bilateral Blur)是一种同时降低噪声并保持边缘锐化的图像模糊方法。它使用两个高斯核,一个用于计算像素之间的相似性,另一个用于计算像素之间的空间距离。双边模糊的缺点是速度较慢。在OpenCV中,可以使用BilateralFilter函数来实现双边模糊。该函数接受输入图像、输出图像、核大小、颜色空间标准差和空间空间标准差等参数。\[3\] 综上所述,均值模糊、中值模糊和双边模糊是三种常见的图像模糊处理方法,它们各自具有不同的特点和适用场景。具体选择哪种方法取决于你的需求和图像处理的目标。 #### 引用[.reference_title] - *1* *2* *3* [OpenCvSharp函数:Blur均值模糊、GaussianBlur高斯模糊、MedianBlur中值模糊和BilateralFilter双边模糊](https://blog.csdn.net/TyroneKing/article/details/129281197)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值