高斯模糊java代码_“网站变灰”背后的代码实现

news/2024/5/20 4:35:46/文章来源:https://blog.csdn.net/weixin_35651191/article/details/112522270

在刚刚过去的几个月里,我们的国家经历了非常惨痛的时刻,很多英雄在救助和保护他人的路上倒下。前天(4月4日),清明节,全国降半旗,10点全国默哀三分钟,以致敬英雄和缅怀逝去的同胞们。当天一切公共娱乐活动也都停止,包括直播、综艺、影视、游戏等等。

在这里也向全国抗击新冠肺炎疫情斗争牺牲的烈士和逝世的同胞表达深切的哀悼,向所有在抗战在疫情前线的工作和医护人员致敬。我们每一个人的平安面前,都是英雄的人墙。

网站变灰

为了表示哀悼,当天很多网站把主页和内容都变成了灰色,比如百度、B 站、爱奇艺、CSDN 等等。

43756245cf789efba9100a9cc61b0f1e.png
CSDN
1d90ba9bbd4d79fad23c7d31c8535362.png
爱奇艺
58bf271904452a49ff0c70c67d294117.png
百度

全站的内容都变成灰色了,包括按钮、图片等等。这时候有人可能会好奇,这是怎么做到的呢?

有人会以为所有的内容都修改了代码,统一换了一个 CSS 样式,图片也全换成灰色的了,按钮等样式也统一换成了灰色样式。但想想看这个成本也太高了,而且万一某个控件忘记加灰色样式了岂不是太突兀了。

其实,解决方案很简单,只需要几行代码就能搞定了。

实现

我们选择一个网站,比如 B 站吧,打开浏览器开发者工具。

审查一下网页的源代码,我们可以发现在 html 的这个地方多了一个疑似的 class,叫做 gray,gray 中文即灰色。

1ca9c9f342b497ed37a63b5910c3fb67.png
变灰效果

其 CSS 内容为:

html.gray {-webkit-filter: grayscale(.95);}

我们将其取消,就能发现网站的颜色就能重新还原回来了。

7501132a7ea2e53b64b5b69a3d70d743.png
还原效果

果然是这个样式在起作用,而且是全局的效果,因为它是作用在了 html 这个节点之上的。

另外看看 CSDN,它也是用的这个 CSS 样式,其内容为:

html {-webkit-filter: grayscale(100%);-moz-filter: grayscale(100%);-ms-filter: grayscale(100%);-o-filter: grayscale(100%);    filter: grayscale(100%);    filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);}

这个实现看起来兼容性会更好一些。

因此我们可以确定,通过一个全局的 CSS 样式就能将整个网站变成灰色效果。

分析

那么这里我们就来详细了解一下这究竟是一个什么样的 CSS 样式。

这个样式名叫做 filter,搜下 MDN 的官方介绍,其链接为:https://developer.mozilla.org/zh-CN/docs/Web/CSS/filter。

官方介绍内容如下:

filter CSS 属性将模糊或颜色偏移等图形效果应用于元素。滤镜通常用于调整图像,背景和边框的渲染。

CSS 标准里包含了一些已实现预定义效果的函数。你也可以参考一个 SVG 滤镜,通过一个 URL 链接到 SVG 滤镜元素 (SVG filter element[1])。

其实就是一个滤镜的意思。

官方有一个 Demo,可以看下效果,如图所示。

3b818c5a3e4d3ff27c7b19064ea6cc0b.gif
Demo

比如这里通过 filter 样式改变了图片、颜色、模糊、对比度等等信息。

其所有用法示例如下:

/* URL to SVG filter */filter: url("filters.svg#filter-id");/*  values */filter: blur(5px);filter: brightness(0.4);filter: contrast(200%);filter: drop-shadow(16px16px20px blue);filter: grayscale(50%);filter: hue-rotate(90deg);filter: invert(75%);filter: opacity(25%);filter: saturate(30%);filter: sepia(60%);/* Multiple filters */filter: contrast(175%) brightness(3%);/* Global values */filter: inherit;filter: initial;filter: unset;

各个用法介绍大家可以参考官方的文档说明:https://developer.mozilla.org/zh-CN/docs/Web/CSS/filter

比如这里如果我们可以使用 blur 设置高斯模糊,用法如下:

filter: blur(radius)

给图像设置高斯模糊。radius 一值设定高斯函数的标准差,或者是屏幕上以多少像素融在一起,所以值越大越模糊;如果没有设定值,则默认是 0;这个参数可设置绝对像素值,但不接受百分比值。

可以达成这样的效果:

f862d7a9c216fd174565db825f064bde.png
效果

再说回刚才的灰色图像,这里其实就是设置了 grayscale,其用法如下:

filter: grayscale(percent)

将图像转换为灰度图像。值定义转换的比例。percent 值为 100% 则完全转为灰度图像,值为 0% 图像无变化。值在 0% 到 100% 之间,则是效果的线性乘子。若未设置,值默认是 0。另外除了传递百分比,还可以传递浮点数,效果是一样的。

如:

filter: grayscale(1)filter: grayscale(100%)

都可以将节点转化为 100% 的灰度模式。

所以一切到这里就清楚了,如果我们想要把全站变成灰色,再考虑到各浏览器兼容写法,可以参考下 CSDN 的写法:

.gray {-webkit-filter: grayscale(100%);-moz-filter: grayscale(100%);-ms-filter: grayscale(100%);-o-filter: grayscale(100%);    filter: grayscale(100%);    filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);}

这样想要变灰的节点只需要加上 gray 这个 class 就好了,比如加到 html 节点上就可以全站变灰了。

最后呢,看一下浏览器对 filter 这个样式的兼容性怎样,如图所示:

967704db6adc3b0b95161da1d063b20c.png
兼容性

这里我们看到,这里除了 IE,其他的 PC、手机端的浏览器都支持了,Firefox 的 PC、安卓端还单独对 SVG 图像加了支持,可以放心使用。

总结

本篇文章简单介绍了一下“网站变灰”效果的实现,也学习了 filter 的更详细的用法。

References

[1] SVG filter element: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/filter

作者:崔庆才

来源:进击的Coder


a4c7a2568ce09e090ea9644eb262843b.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_749091.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于WebSphere与Domino的电子商务网站构架分析

转载于:https://blog.51cto.com/chenguang/470852

我记录网站综合系统 -- 技术原理解析[4:我记录框架 路由系统]

源代码位置:wojilu.Web.Mvc.Processors:RouteProcessor.cs:wojilu.Web.Mvc.Routes :RouteTool.cs 客户端向服务器发送请求,主要是通过 url 链接的形式,是 url 告诉了服务器,应该返回什么样的…

用access作为.net网站的数据库,在windows2003上配置出现,出错不能访问。

最近在将做好的毕业设计挂在服务器上浏览,总是出现错误,无法访问。网上查了很多方法,感觉都没有很好的答案,发表一下,和大家一起共享一下。希望大家多多提建议。 我的数据库是access2007,首先,由…

asp.net mvc 2.0+Silverlight播放器开发的TeamVideo视频播放网站--系列2

这几天抽空写第二部分。很高兴今天能够和大家分享下。我这是个asp.net mvc的新手。。。希望各位提出宝贵的意见。 你可以在这里查看第一部分的内容。http://www.cnblogs.com/n-pei/archive/2010/08/30/1812981.html 按照之前计划,这一部分的内容如下: 1.…

锦绣蓝图:怎样规划令人流连忘返的网站(第2版)(全彩印刷,信息架构之父R. S. Wurman隆重推荐)...

锦绣蓝图:怎样规划令人流连忘返的网站(第2版)(全彩印刷,信息架构之父R. S. Wurman隆重推荐)【原 书 名】 Information Architecture: Blueprints for the Web (2nd Edition) 【原出版社】 New Riders Press 【作  者】(美)Christina Wodt…

网站(bs系统)怎样实现即时消息思路总结

为什么80%的码农都做不了架构师?>>> 1.ajax刷新 2.flashsocket(推荐,网页游戏多用这个) 3.DWR用来做即时通讯很方便 4.Comet 有时也称反向 Ajax 或服务器端推技术(server-side push),这个东西其实就是长连接&#xff…

手机php网站不显示图片,javascript,_手机页面用innerHTML拼接的图片不显示,javascript - phpStudy...

手机页面用innerHTML拼接的图片不显示测试代码input,button{height:35px;}add function addEmotion(t){alert(t);}var addfunction(){var prefixhttp://192.168.1.100:88/emotion/images/;var emotion[hi,yes,good];var html[];for(var i0;ihtml.push("");}document.…

计算机的电子邮件地址怎么看,电脑使用小技巧:如何找出网站上隐藏的电子邮件地址?...

当访问有些网站时,有时我们需要与网站进行联系,可是点击网站上的“联系我们”时,并没有出现详细的联系信息,比如:地址,邮件,电话等,电脑反而弹出outlook邮件客户端程序。如果我们平时…

dwz框架在网站群项目中的应用(3)—html拓展之控件组件篇

每个页面中由不同的控件和组件提供不同的功能,在“dwz框架”下应用框架的规则只要写简单的html代码就可以写出实用的控件或组件,在项目中用的比较多的有:文本框、日历控件、combox组件、分页组件,下面将继续以项目中的实例介绍这些…

大型网站技术架构(六)网站的伸缩性架构

2019独角兽企业重金招聘Python工程师标准>>> 网站系统的伸缩性架构最重要的技术手段就是使用服务器集群功能,通过不断地向集群中添加服务器来增强整个集群的处理能力。“伸”即网站的规模和服务器的规模总是在不断扩大。 1、网站架构的伸缩性设计 网站的…

大型网站技术架构(一)大型网站架构演化

2019独角兽企业重金招聘Python工程师标准>>> 看完了有一本书,就应该有所收获,有所总结,最近把《大型网站技术架构》一书给看完了,给人的印象实在深刻,再加上之前也搞过书本上讲的反向代理和负载均衡以及ses…

Smint – 用于单页网站制作的 jQuery 导航菜单插件

Smint 是一款用于实现单页风格网站的 jQuery 导航插件,包含两部分:固定在页面顶部的精美导航条和能够在你点击的时候自动滚动到对应内容的菜单按钮。Smint 使用非常简单,只有一个参数用于设置页面滚动的速度,默认是 500 毫秒&…

大型网站架构演变和知识体系

之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么…

转一篇架构师间的问答------如何对应大数据量网站的考验

提问嘉宾: 林昊,网名BlueDavy,China OSGi User Group Director,淘宝网平台架构部架构师,个人的研究方向主要为Java模块化、动态化系统的构建以及高性能的大型分布式Java系统的构建。曾编写《OSGi实战》和《OSGi进阶》…

《大型网站技术架构》读书笔记 - 网站的技术升级路线

《大型网站技术架构》读书笔记 - 网站的技术升级路线 本文描述网站从小到大演变过程中的技术升级路线; 1.初始架构 一台服务器,应用、DB、文件都在一块,使用经典的LAMP模式构建整个站点; 优点很明显,开发部署都简单&am…

历史最全Transformer注意力机制综述论文、代码及网站资源整理分享

Google于2017年6月在arxiv上发布了一篇非常经典的文章:Attention is all you need,提出了解决sequence to sequence问题的transformer模型,该文章使用全Attention的结构代替了LSTM,抛弃了之前传统的encoder-decoder模型必须结合CN…

网站架构的伸缩性设计

网站开发初期,我们习惯性把所有代码都写到一个项目中。前台、后台、缓存、数据库、静态资源... 等等。网站系统物理分离慢慢的系统会原来越大,很显然需要面对大量用户的高并发访问和存储海量数据。很多用户的请求,不可能在一台服务器上完成。…

11月钓鱼网站:.COM域名超56% 新网数码占比37%

IDC评述网(idcps.com)12月15日报道:近日,中国反钓鱼网站联盟发布了《2014年11月钓鱼网站处理简报》。据报告显示,11月份,联盟共处理钓鱼网站4820个,较上月有所增加;截至2014年11月份…

采用SharePoint Designer将JavaScript而他们的网站页面集成的定义

采用SharePoint Designer将JavaScript而他们的网站页面集成的定义 像JavaScript这种动态脚本语言可以给你的页面震撼效果。为了加盟JavaScript要定义自己的网站页面。面步骤:1. 打开SharePoint Designer 2010. 点击左側站点页面。2. 新建Web Part页面,重…

如何用代码设置控制自己网站的网页在360浏览器打开时强制优先使用极速模式,而非兼容模式...

在head标签中添加一行代码&#xff1a; <html><head><meta name"renderer" content"webkit|ie-comp|ie-stand" /></head><body></body> </html> content的取值为webkit,ie-comp,ie-stand之一&#xff0c;区分大…