首页 前端知识 使用CSS改变图片颜色

使用CSS改变图片颜色

2024-06-05 13:06:48 前端知识 前端哥 173 451 我要收藏

问题:

项目中遇到需要将下载的图片的白色背景修改为灰色,经过调查发现主要用到了的css的滤镜属性。

强大的 CSS:filter

CSS滤镜(filter)属提供的图形特效,像模糊,锐化或元素变色。过滤器通常被用于调整图片,背景和边界的渲染

属性:

函数效果说明
none默认值,表示没有效果
blur(px)高斯模糊为图像设置高斯模糊,默认值为 0,单位为像素,值较大越模糊
brightness(number)线性乘法number越大图像越亮,number不能取负值,可以是整数也可以是百分比
grayscale(%)调整灰度将图像转换为灰度图像,默认值为 0%,表示原始图像;100% 表示将图像完全变成灰度图像(即黑白图像),不允许为负值
contrast(%)调整对比度默认值为 100%,代表原始图像;0% 将使图像完全变黑;当值超过 100% 时图像将获得更高的对比度
drop-shadow(h-shadow v-shadow blur spread color)阴影为图像添加阴影效果,参数说明如下:
h-shadow:必填值,指定水平方向阴影的像素值,若值为负,则阴影会出现在图像的左侧;
v-shadow:必填值,指定垂直方向阴影的像素值,若值为负,则阴影会出现在图像的上方;
blur:可选值,为阴影添加模糊效果,默认值为 0,单位为像素,值越大创建的模糊就越多(阴影会变得更大更亮),不允许使用负值;
spread:可选值,默认值为 0,单位为像素。若值为正,则阴影将会扩展并增大;若值为负,则阴影会缩小;
color:可选值,为阴影添加颜色,如未指定,则由浏览器来绝对,通常为黑色。
注意:Chrome、Safari 和 Opera 等浏览器不支持第 4 个参数,如果添加,则不会有任何效果
invert(%)反转图像默认值为 0%,表示原始图像;100% 则表示完全反转,不允许使用负值
opacity(%)不透明度默认值为 100%,表示原始图像;0% 表示完全透明,不允许使用负值
saturate(%)调整饱和度默认值为 100%,表示原始图像;0% 表示图像完全不饱和,不允许使用负值
sepia(%)图像转为棕褐色默认值为 0%,表示原始图像;100% 表示图像完全变成棕褐色,不允许使用负值
hue-rotate(deg)图像色相旋转该值用来定义色环的度数,默认值为 0deg,代表原始图像,最大值为 360deg

效果:

  1. 高斯模糊
    filter:blur( ) 高斯模糊 给图像一个高斯模糊效果,length值越大,图像越模糊
    在这里插入图片描述
  2. 线性乘法
    brightness(%) 线性乘法 可以让图片看起来更亮或者更暗 百分比越小图片越暗
    在这里插入图片描述
  3. 调整灰度
    grayscale(%) 将图像转换为灰度图像 这个效果可以将图片做旧 百分比越大灰色值越大做旧越明显
    在这里插入图片描述
  4. 调整对比度
    contrast(%) 对比度 调整图像的对比度 百分比越小对比度越低
    在这里插入图片描述
  5. 阴影
    drop-shadow(h-shadow v-shadow blur spread color) 给图像设置一个阴影效果 类似于box-shadow
    在这里插入图片描述
  6. 反转图像
    invert(%) 反转 这个函数的作用是反转输入图像,有点像曝光的效果 百分比越大曝光越明显
    在这里插入图片描述
  7. 不透明度
    opacity(%) 透明度 值为 0% 则使图像完全透明,值为 100% 则图像无变化
    在这里插入图片描述
  8. 调整饱和度
    saturate(%) 饱和度 值为 0% 则是完全不饱和,值为 100% 则图像无变化
    在这里插入图片描述
    超过 100% 则增加饱和度
    在这里插入图片描述
  9. 图像转为棕褐色
    sepia(%) 将图像转换为深褐色 像是给照片添加一层暖色调
    在这里插入图片描述
  10. 图像色相旋转
    hue-rotate(deg) 色相旋转 180deg是旋转值最大的
    在这里插入图片描述
    360deg 效果等同于 0deg
    在这里插入图片描述

filter: url(‘’)

首先创建一个 .svg 结尾的文件

<svg height="0" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <filter id="change">
      <feColorMatrix values="3 -1 -1 0 0   -1 3 -1 0 0   -1 -1 3 0 0   0 0 0 1 0" />
    </filter> 
  </defs>
</svg>

在需要的元素上添加

.banner {
  filter: url('@/assets/filter.svg#change')
}

在这里插入图片描述

转载请注明出处或者链接地址:https://www.qianduange.cn//article/10814.html
标签
评论
发布的文章
大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!