前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用CSS设置图片黑白/灰色效果

利用CSS设置图片黑白/灰色效果

作者头像
德顺
发布2019-11-13 17:22:19
7.6K0
发布2019-11-13 17:22:19
举报
文章被收录于专栏:前端资源前端资源
写页面的时候由于页面风格原因,可能需要图片变灰色,如果用图片处理软件的话可能会比较麻烦,而且会增加图片的数量,不利于资源的合理利用。

下面提供两种方法:

1、使用CSS的 filter: gray;  属性即可实现灰度效果。

Chrome内核的浏览器只需要一行属性代码即可:

代码语言:javascript
复制
filter: grayscale(100%);

HTML部分代码:

代码语言:javascript
复制
<img src="img/qingxin.png" alt="">
<img class="g" src="img/qingxin.png" alt="">

为了形成对比,我把图片引入两次,其中一个添加了一个class g ,用来给它设置样式。

CSS部分代码,为了保证兼容性,可以写成:

代码语言:javascript
复制
img {
  width: 300px;
}
.g {
  -webkit-filter: grayscale(100%);
  -moz-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  -o-filter: grayscale(100%);
  filter: grayscale(100%);
  filter: gray;
}

首先给图片设置一个宽度,再给其中一个设置灰度属性。

效果如下:

 利用CSS设置图片黑白/灰色效果 经验总结
利用CSS设置图片黑白/灰色效果 经验总结

给 <body> 标签添加属性,可以实现整站变灰效果。

网上说的其中的 filter: gray; 就是兼容IE的,不过我试着好像不行,可以使用第二种方法。

2、利用 grayscale.js 实现图片的灰度效果。方法很简单:

a. 引入js文件:

代码语言:javascript
复制
<script src="http://james.padolsey.com/demos/grayscale/grayscale.js"></script>

但是这个链接好像被墙了。。。可以引入我网站的链接:

代码语言:javascript
复制
<script src="http://cdn.w3h5.com/down/source/js/grayscale.js"></script>

您可以直接下载 js 文件引入 下载链接:点击下载 grayscale.js

在 script 标签内添加一行:

代码语言:javascript
复制
grayscale(document.getElementById("g"));//通过ID调用

或DOM元素集:

代码语言:javascript
复制
grayscale(document.getElementsByTagName("img"));

也可以使用JQuery调用:

代码语言:javascript
复制
grayscale($("#g"));

需要注意的是:

Grayscale.js 是模仿微软专有的“ 灰度 ”过滤器的实验性尝试(在大多数IE版本中都可用)。在Opera 9,FF2 / 3,Safari 4,IE6 / 7中测试可用。

它可能不适用于Safari 4和Chrome,因为它们不支持 CanvasContext.getImageData(因为图像不能灰度化)。

实现原理:IE浏览器下是添加灰度滤镜,这个大家都懂的。其他浏览器貌似使用Canvas中的getImageData方法,然后对每个像素点进行灰度转换~~

因此,在现代浏览器下,对于该方法,图片的灰度处理有两个局限性:

1. 速度:300*300这张一般般大小的图片变灰就要数秒之久;

2. 跨域:安全性机制,无法转换跨域的图片为黑白色。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-10),如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图片处理
图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档