位置: IT常识 - 正文

不借助 Javascript,利用 SVG 快速构建马赛克效果(不借助的英文)

编辑:rootadmin
之前在公众号转发了好友 Vajoy 的一篇文章 -- 巧用 CSS 把图片马赛克风格化。 核心是利用了 CSS 中一个很有意思的属性 -- image-rendering,它可以用于设置图像缩放算法。 何为 image-rendering? CSS 属性 image-rendering 用于设置图像 ...

推荐整理分享不借助 Javascript,利用 SVG 快速构建马赛克效果(不借助的英文),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:不借助工具怎么画圆,不借助任何器械工具,人类徒手潜水的深度记录,不借助的英文,不借助工具怎么画圆,不借助任何工具怎么画圆,不借助圆规怎么画圆,不借助其他变量交换两个变量的值,不借助英语,内容如对您有帮助,希望把文章链接给更多的朋友!

之前在公众号转发了好友 Vajoy 的一篇文章 -- 巧用 CSS 把图片马赛克风格化。

核心是利用了 CSS 中一个很有意思的属性 -- image-rendering,它可以用于设置图像缩放算法。

何为 image-rendering?

CSS 属性 image-rendering 用于设置图像缩放算法。它适用于元素本身,适用于元素其他属性中的图像,也应用于子元素。

语法比较简单:

{ image-rendering: auto; // 默认值,使用双线性(bilinear)算法进行重新采样(高质量) image-rendering: smooth; // 使用能最大化图像客观观感的算法来缩放图像。让照片更“平滑” image-rendering: crisp-edges; // 使用可有效保留对比度和图像中的边缘的算法来对图像进行缩放 image-rendering: pixelated; // 放大图像时, 使用最近邻居算法,因此,图像看着像是由大块像素组成的}

其中,image-rendering: pixelated 比较有意思,可以将一张低精度图像马赛克化。

譬如,假设我们有一张 300px x 300px 的图像,我们让他转换成 30px x 30px:

我们再把失真后的图片,放大到 300px x 300px:

在此基础上,我们给这张图片设置 image-rendering: pixelated,就能得到一张被马赛克化图片:

<img src="?30x30" />img { width: 300px; height: 300px; image-rendering: pixelated}

image-rendering: pixelated 实现马赛克效果的局限性

OK,那么为什么需要先缩小再放大,然后才运用 image-rendering: pixelated 呢?我们来做个对比,直接给原图设置 image-rendering: pixelated:

直接给原图设置 image-rendering: pixelated 只会让图片变得更加有锯齿感,而不会直接产生马赛克的效果。

这也和 image-rendering: pixelated 的描述吻合,放大图像时, 使用最近邻居算法,因此,图像看着像是由大块像素组成的。

不借助 Javascript,利用 SVG 快速构建马赛克效果(不借助的英文)

我们只有基于放大模糊后的图像,才能利用 image-rendering: pixelated 得到一张被马赛克的图片!

利用 CSS 再图片缩小后再放大?

那么,假设我们只有一张清晰的原图,又想利用 CSS 得到一个马赛克效果,可行么?顺着这个思路,我们可以想到:

能否利用 CSS 将图片缩小后再放大,再运用 image-rendering: pixelated 呢?

不行。WEB 上的图片像极了 Photoshop 里的智能对象 —— 你可以任意修改它的尺寸(例如放大很多倍让其变模糊),但最后再把图片改回原本的大小时,图片会变回原来的样子(没有任何失真)。

所以,要想在只有一张原图的情况下,得到一张模糊的图像,就不得不求助于 Canvas,这样一来就稍显麻烦了。我们只是想要个马赛克效果而已。

SVG 滤镜叠加实现马赛克效果

这就可以引出今天的主角了,SVG 滤镜,使用几层 SVG 滤镜的叠加,其实可以非常轻松的实现一个马赛克效果滤镜。

并且,SVG 滤镜可以通过 CSS filter,轻松的引入。

代码其实也非常的简单,SVG 定义一个滤镜,利用多层滤镜的叠加效果实现一个马赛克效果,然后,通过 CSS filter 引入,可以运用在任何元素上:

<img src="" alt=""><svg> <filter id="pixelate" x="0" y="0"> <feFlood x="4" y="4" height="2" width="2"/> <feComposite width="8" height="8"/> <feTile result="a"/> <feComposite in="SourceGraphic" in2="a" operator="in"/> <feMorphology operator="dilate"radius="5"/> </filter></svg>img { width: 300px; height: 300px; filter: url(#pixelate);}

这样,我们就得到了一个马赛克效果:

如果你只是想使用这个效果,你甚至不需要去理解整个 SVG <filter> 到底做了什么事情,当然,如果你是一个一问到底的人,那么需要有一定的 SVG 基础,建议可以看看我的这几篇关于 SVG 滤镜的介绍:

有意思!强大的 SVG 滤镜有意思!不规则边框的生成方案震惊!巧用 SVG 滤镜还能制作表情包?CSS/SVG 实现马赛克的局限性

当然,CSS/SVG 滤镜实现马赛克的局限性在于,如果你是不想给用户看到原图的,那么在客户端直接使用这个方式相当于直接把原图的暴露了。

因为 CSS/SVG 滤镜的方式是在前端进行图片马赛克化的,而且需要原图。

当然,利用上述的两个实现图片马赛克技巧,我们还是可以用于制作一些简单的交互效果的,像是这样:

上述的 DEMO 和 SVG 滤镜的全部代码,你都可以在这两个 DEMO 中找到:

CodePen Demo - image-rendering pixelated applicationSVG Pixel Filter最后

好了,本文到此结束,希望对你有帮助 ?

更多精彩 CSS 技术文章汇总在我的 Github -- iCSS ,持续更新,欢迎点个 star 订阅收藏。

如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。

本文链接地址:https://www.jiuchutong.com/zhishi/313052.html 转载请保留说明!

上一篇:【已解决】移动端页面手势滑动触发touch 事件时,在左右上下部分出现空白部分的问题(我想问一下移动)

下一篇:织梦系统基本参数里新变量删除方法(织梦程序)

  • 酷狗闪光灯模式在哪设置(酷狗闪光灯模式怎么开启)

    酷狗闪光灯模式在哪设置(酷狗闪光灯模式怎么开启)

  • 怎样转发微信聊天记录(怎样转发微信聊天内容给朋友)

    怎样转发微信聊天记录(怎样转发微信聊天内容给朋友)

  • pr一导出就死机(pr一导出就卡死)

    pr一导出就死机(pr一导出就卡死)

  • iphone系统占用太大怎么办(iphone系统占用大量内存)

    iphone系统占用太大怎么办(iphone系统占用大量内存)

  • 淘宝怎么换支付宝账号(淘宝怎么换支付账号)

    淘宝怎么换支付宝账号(淘宝怎么换支付账号)

  • se相当于iphone几(苹果se相当于苹果6s吗)

    se相当于iphone几(苹果se相当于苹果6s吗)

  • 笔记本发烫正常吗(笔记本发热发烫)

    笔记本发烫正常吗(笔记本发热发烫)

  • 抖音不点赞不评论能看到访客记录吗(抖音不点赞不评论)

    抖音不点赞不评论能看到访客记录吗(抖音不点赞不评论)

  • 钉钉悬浮窗记录时长吗(钉钉设置悬浮窗会记录时间吗)

    钉钉悬浮窗记录时长吗(钉钉设置悬浮窗会记录时间吗)

  • 百兆路由器支持200兆宽带吗(百兆路由器支持多少兆)

    百兆路由器支持200兆宽带吗(百兆路由器支持多少兆)

  • 电话手表必须要装移动卡吗(电话手表必须要开流量吗)

    电话手表必须要装移动卡吗(电话手表必须要开流量吗)

  • iphonex支持wifi6吗(苹果x支持wifi6路由器吗)

    iphonex支持wifi6吗(苹果x支持wifi6路由器吗)

  • 手机增强信息啥意思(手机中增强信息是什么)

    手机增强信息啥意思(手机中增强信息是什么)

  • 手机wps删除空白页面(手机wps如何删除空白)

    手机wps删除空白页面(手机wps如何删除空白)

  • wps怎么自动编序号(wps怎么能自动编号)

    wps怎么自动编序号(wps怎么能自动编号)

  • 手机上的图片怎么打印出来(手机上的图片怎么压缩打包)

    手机上的图片怎么打印出来(手机上的图片怎么压缩打包)

  • 微信步数多久更新一次(微信步数多久更新一次10点半之后还有176步)

    微信步数多久更新一次(微信步数多久更新一次10点半之后还有176步)

  • lol录屏怎么关(lol怎么关)

    lol录屏怎么关(lol怎么关)

  • 苹果11支持5g网络吗(苹果支持5g网络吗)

    苹果11支持5g网络吗(苹果支持5g网络吗)

  • 拍照滤镜怎么调出来(拍照滤镜怎么调整)

    拍照滤镜怎么调出来(拍照滤镜怎么调整)

  • 小米6x怎么设置微信美颜(小米6x怎么设置wifi频段)

    小米6x怎么设置微信美颜(小米6x怎么设置wifi频段)

  • wps表格公式怎么用(wps表格公式怎么输入)

    wps表格公式怎么用(wps表格公式怎么输入)

  • 圣米歇尔山 (© Leroy Francis/Getty Images)

    圣米歇尔山 (© Leroy Francis/Getty Images)

  • 前端加密,后端解密的过程及代码(密码明文传输解决,不是太保险。key在前端有显示)(前端加密后端解密代码)

    前端加密,后端解密的过程及代码(密码明文传输解决,不是太保险。key在前端有显示)(前端加密后端解密代码)

  • 制造业做贸易出口可以退税吗
  • 工业企业取得土地收益
  • 建筑业差额纳税怎么算
  • 个税申报申报方式选择
  • 销售净水器营业执照范围
  • 调账以前年度损益调整如何结转
  • 新企业会计准则的内容
  • 企业将存货低价出售处理要如何做会计处理?
  • 增值税和消费税申报对比不符怎么处理
  • 停车场收入如何确认缴税
  • 土地作价入股是否视为土地转让
  • 建筑业购买材料入什么会计科目
  • 捐款属于什么会计科目类别
  • 工资薪金所得税率表2023
  • win7系统如何设置热点
  • 增值税要不要计入固定资产的成本中?
  • 报销怎么打
  • 以银行存款支付上述材料运费480元
  • php utf8转gb2312
  • Win11错误提示"the pc must support secure boot"怎么解决
  • 电脑c盘被损坏怎么修复
  • 税收风险的含义
  • low是什么文件
  • 解决的英文
  • 企业会计核算利润表
  • 资产变现率减资产负债率
  • swiper.js常用功能
  • 职工教育经费可以有余额吗?
  • 什么是进项票什么是成本票
  • echarts series name
  • css字体设置渐变色
  • 赠品视同销售会计分录要如何编制?
  • 人民币跨境贸易占比
  • 手机话费怎么打发票
  • druid数据库连接池
  • 织梦cms官网
  • 文化事业建设费税收优惠2023
  • 三方协议是什么意思?
  • 软件使用权计入什么科目
  • 长期股权投资实现的净利润权益法
  • sql里面union 和union all区别
  • 技术服务费怎么收合理
  • 进项税大于销项税,不用缴纳增值税
  • 工程服务费会计怎么做账
  • 什么是企业汇算清缴年度
  • 出口退税三类企业影响
  • 消费税会计分录处理
  • 小规模纳税人出租不动产优惠政策
  • 支付货代运费账务处理
  • 小企业无形资产取得的账务处理
  • 丢失的发票怎么查询
  • 半成品仓库的管理办法
  • 固定资产的税法处理与会计处理的差异50字
  • 租赁财产的残值处理
  • mysql批量修改字段值
  • 红石玩家入门
  • win7开始菜单找不到启动项
  • win7怎么看最近访问位置
  • 苹果机的mac地址
  • VMware虚拟机下载
  • windowxp怎么取消开机密码
  • NkbMonitor.exe - NkbMonitor是什么进程文件 有什么作用
  • win7系统如何
  • win10系统更新出错怎么办
  • win7网速很慢
  • Windows8怎么打开任务管理器
  • linux文件操作常用命令
  • js三种绑定方式
  • nodejs全局异常监听
  • centos创建shell脚本
  • 用javascript
  • 青海国家税务局官网
  • 每年个人所得税2万工资多少
  • 率土之滨怎么提高建设值上限
  • 民族贸易产生的原因
  • 什么是审计的重要特征,也是审计的精髓
  • 代理记账公司里的公司文件盒书写样式图片
  • 税盘数字证书密码怎么查看
  • 国家税务总局176号公告
  • 浙江省增值税专用发票票样
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设