使用CSS实现图像滤镜效果

使用CSS filter属性,可以将类似Photoshop的滤镜效果应用于图像和内容;滤镜效果包括例如模糊效果,阴影,色彩变换和操作,如饱和/去饱和色等。该filter属性定义了元素(通常是<img>)的可视效果,此属性主要用于图像内容。

filter属性是将过滤器效果应用于web页面上的元素(主要是图像)的CSS方法。

filter: none|blur()|brightness()|contrast()|drop-shadow()|grayscale()|hue-rotate()|invert()|opacity()|saturate()|sepia()|url();

通过将多个过滤器函数传递给filter属性,可以将多个过滤器应用于元素;函数是空格分隔的。

例:

img {

  filter: brightness(20%) blur(20px);

}

此示例将两个过滤器函数应用于网页中的图像元素。

Filter 函数

注意: 滤镜通常使用百分比 (如:75%), 当然也可以使用小数来表示 (如:0.75)。

● none:这是默认值,不适用任何效果。

● brightness():设置元素的亮度。如果亮度为0%则为全黑,如果亮度为100%,则与原始亮度相同。大于100%结果的值是更明亮的元素。

● grayscale():设置元素的灰度,它将元素颜色转换为黑色和白色。灰度0%表示原始元素,100%表示完全灰度元素。

● sepia():它将图像转换为棕褐色图像,其中0%表示原始图像,100%表示完全棕褐色。

● contrast():用于调整元素的对比度。0%对比度表示完整的黑色元素,100%对比度表示原始元素。

● saturate():用于设置元素的饱和度。0%饱和度表示元素完全不饱和,100%饱和表示原始图像。大于100%结果的值是超饱和元素。

● blur():它将模糊效果应用于元素。如果未指定模糊值,则默认值为0。

● opacity():它设置图像的不透明度效果。0%不透明度表示元素完全透明,如果不透明度为100%,则表示原始图像。

● hue-rotate():它将色调旋转应用于图像。该值定义将调整图像样本的色环周围的度数。默认值为0deg,表示原始图像;该值虽然没有最大值,超过360deg的值相当于又绕一圈。

● invert():它反转元素。默认值为0%,表示原始图像。100%使图像完全反转。

● drop-shadow():它对元素应用阴影效果。它接受h-shadow,v-shadow,blur,spread和color作为值。

● url():接受一个XML文件,该文件设置了 一个SVG滤镜,且可以包含一个锚点来指定一个具体的滤镜元素。

示例:

<!DOCTYPE HTML>

<html>

<head>

<meta charset="UTF-8">

<style type="text/css">

img{

width: 200px;

}

.img1{

/*没有滤镜效果*/

/*考虑浏览器兼容性:兼容 Chrome, Safari, Opera */

-webkit-filter: none;

filter: none;

}

.img2{

/*元素的亮度*/

/*考虑浏览器兼容性:兼容Chrome,Safari,Opera*/

-webkit-filter: brightness(30%);

filter: brightness(30%);

}

.img3{

/*元素的灰度*/

/*考虑浏览器兼容性:兼容Chrome,Safari,Opera*/

-webkit-filter: grayscale(80%);

filter: grayscale(80%);

}

.img4{

/*将图像转换为棕褐色图像*/

/*考虑浏览器兼容性:兼容Chrome,Safari,Opera*/

-webkit-filter: sepia(50%);

filter: sepia(50%);

}

.img5{

/*调整元素的对比度*/

/*考虑浏览器兼容性:兼容Chrome,Safari,Opera*/

-webkit-filter: contrast(30);

filter: contrast(30);

}

.img6{

/*元素的饱和度*/

/*考虑浏览器兼容性:兼容Chrome,Safari,Opera*/

-webkit-filter: saturate(50);

filter: saturate(50);

}

.img7{

/*模糊效果*/

/*考虑浏览器兼容性:兼容Chrome,Safari,Opera*/

-webkit-filter: blur(2px);

filter: blur(2px);

}

.img8{

/*不透明度效果*/

/*考虑浏览器兼容性:兼容Chrome,Safari,Opera*/

-webkit-filter: opacity(30%);

filter: opacity(30%);

}

.img9{

/*色调旋转*/

/*考虑浏览器兼容性:兼容Chrome,Safari,Opera*/

-webkit-filter:hue-rotate(55deg);

filter: hue-rotate(55deg);

}

.img10{

/*反转元素*/

/*考虑浏览器兼容性:兼容Chrome,Safari,Opera*/

-webkit-filter: invert(20);

filter: invert(20);

}

.img11{

/*反转元素*/

-webkit-filter: drop-shadow(16px 18px 15px rgba(255, 0, 0, 0.5)); 

/*考虑浏览器兼容性:兼容 Chrome, Safari, Opera */

filter: drop-shadow(16px 18px 15px rgba(255, 0, 0, 0.5));

}

</style>

</head>

<body>

<div class="demo">

<img src="1.jpg" class="img1"/>

<img src="1.jpg" class="img2"/>

<img src="1.jpg" class="img3"/>

<img src="1.jpg" class="img4"/>

<img src="1.jpg" class="img5"/>

<img src="1.jpg" class="img6"/>

<img src="1.jpg" class="img7"/>

<img src="1.jpg" class="img8"/>

<img src="1.jpg" class="img9"/>

<img src="1.jpg" class="img10"/>

<img src="1.jpg" class="img11"/>

</div>

</body>

</html>

效果图:

更多前端开发知识,请查阅 HTML中文网 !!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录: Android:Android 0.*Android 1.*Android 2.*Android 3.*A...
    敲代码的令狐葱阅读 4,108评论 0 2
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,543评论 1 11
  • _________________________________________________________...
    fastwe阅读 485评论 0 0
  • 前言 之前在看七月老师的视频的时候,看到了有一个样式是-webkit-filter,不知道是什么(我没咋学过CSS...
    周南城阅读 8,186评论 5 19
  • 第一次使用简书,也是在上面写下的第一篇文章,随便写写,感受和体验一下。 简书给我的感觉,很专注,在里面写起来,觉得...
    Macinbook阅读 182评论 0 0