【发布时间】:2018-02-24 15:59:24
【问题描述】:
有没有一种方法可以混合两个 PNG 图像以在它们都有带 alpha 的边框时完美匹配?
这是我遇到的问题的一个示例:
img {
position: absolute;
left: 0px;
top: 0px;
}
.container {
height: 512px;
width: 512px;
}
<div class="container">
<img src="https://image.prntscr.com/image/VmxphMVDQSu-OXXnHQm1Tg.png" alt="Sphere">
<img src="https://image.prntscr.com/image/n0cbaO-4QVOk_PQ8ESQRqQ.png" alt="Cube">
</div>
或CodePen的链接
情况是我有两个保存为 PNG 的 3D 渲染,并且都具有透明度为 50% 的 alpha 边框,如果您在 Photoshop 和/或 After Effects 中将它们合并,则可以完美匹配。
但是当在 HTML/CSS 中创建相同的情况时,我们在元素之间有一条白线。 在阅读了一些关于 mix-blending-mode 和 background-blending-mode 并用它们进行一些测试之后,它似乎没有帮助。我们认为这两个图像(它们的 Alpha 通道)都与背景预乘,这就是为什么它们之间会出现半透明线(边界所在的位置)。
有没有办法通过 CSS 甚至 JavaScript/jQuery 来实现这一点?
编辑:所以我们不会在图像移动和 css 技巧上讨论更多的 cmets。删除 1px 或隐藏它不是一个选项,因为大图片的外观不会相同。
【问题讨论】:
-
“如果你在 Photoshop 中合并它们会完美匹配” 嗯不i.stack.imgur.com/X9D3Q.png
-
@Kaiido 如果您在 AF 中使用 Alpha Add Mode,他们会这样做。我不确定 prntscr 是否将 png 保存为索引,如果它在 Photoshop 中保存,则必须将图像转换为 sRGB,因为 Photoshop 不能很好地处理索引图像
标签: javascript html css alpha compositing