图像中的透明背景颜色

27

我该如何在一个图像或背景图像中删除或使特定背景颜色透明?例如,我有一张图片,我想要删除其中所有的白色像素,以便展示它们“后面”的页面内容。

<div style="
    background-color: #F4F4F7;
    background-image: url('wa.jpg');
    background-repeat: no-repeat;
    background-position: right bottom;
    background-size: 200px 280px;"
align="left">

有哪些函数或属性可以实现这个功能?


我知道可以用Photoshop做到这一点,但我想用CSS代码实现... - naser
6
不需要在CSS中进行操作。您需要编辑图片并制作一个透明背景。 - trutheality
1
顺便提一下,Internet Explorer可以使用hacky Chroma filter在CSS中处理这个问题。 - Simon
2
这可能有点不切实际,但是您可以使用 HTML 的 <canvas> 元素。您可以将图像加载到画布中,并移除所有的白色像素。 - starbeamrainbowlabs
6个回答

19
在CSS中添加以下行:
mix-blend-mode: multiply;
你可以看到背景颜色和白色像素会消失。

10
我认为没有任何JavaScript或HTML或CSS属性、特性或功能可以做到您所要求的事情。
您需要在图像编辑器中删除背景,并将图像保存为.GIF格式,或者PNG格式并选择透明背景。
我曾经使用Paint.Net 来完成此操作,但是您也可以使用您拥有的任何图像编辑器来完成。

我会推荐使用PNG格式,它允许半透明像素和透明像素。 - Fenton
我尝试了png和gif格式,但是这两种格式都不允许我插入具有透明背景的图像,并且在将它们插入到我的HTML文档后仍然保持透明。 - Nick Res

5

你只能通过PNG格式的透明图像查看透明的图像。在你的例子中,你使用的是JPG格式,无论你做什么都无法实现透明效果(除非你使用CSS中的不透明度属性)。如果想要得到想要的结果,请使用.gif或.png保存图像。


5
在CSS中设置background属性时,您可以像这样为div添加透明背景和图像:
#myDiv {
 background:transparent url(myImage);
 }

2

我使用的解决方案是在使用图像之前从中删除背景。您可以通过将图像通过remove.bg来实现。


0

以下是一种实现方法。

  1. 在画布上绘制您的图像。

  2. 删除所有白色(或首选颜色)像素。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接