使用CSS改变图片颜色

问题:

项目中遇到需要将下载的图片的白色背景修改为灰色,经过调查发现主要用到了的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')
}

在这里插入图片描述

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS中,可以使用一些属性来改变图片部分元素的颜色。 首先,可以使用filter属性来改变图片的色调。filter属性允许我们应用不同的视觉效果到元素上,包括改变颜色。其中,最常用的属性是hue-rotate(),可以通过旋转色相的角度来改变图片颜色。例如,filter: hue-rotate(45deg);会将图片颜色向右旋转45度。 其次,可以使用background-blend-mode属性来改变图片元素的背景颜色。通过设置不同的blend模式,可以调整图片与背景色之间的混合效果。常见的一些blend模式有multiply(叠加),screen(屏幕),overlay(叠加),color-dodge(颜色减淡)等等。例如,background-blend-mode: multiply;会将图片与背景色进行叠加,产生某种颜色效果。 此外,还可以使用CSS的伪元素:before和:after来为图片添加背景颜色层。通过设置伪元素的背景颜色、位置和大小等属性,可以实现在图片上添加彩色效果。例如,可以使用:before来添加一个半透明的蓝色遮罩层,使图片呈现蓝色调。 最后,还可以使用CSS3的mask属性来实现图片颜色遮罩效果。通过设置mask-image属性为线性渐变或径向渐变,可以实现对图片的部分元素进行颜色遮罩。mask-position和mask-size属性可以设置遮罩的位置和大小。例如,可以使用linear-gradient来创建一个从红色到透明的渐变,然后将其应用于mask-image,实现对图片的部分元素进行红色遮罩。 总之,通过使用filter属性、background-blend-mode属性、伪元素和mask属性等技术,可以在CSS改变图片部分元素的颜色。这些方法提供了一些灵活的手段,让我们可以实现各种各样的颜色效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值