删除平面图像上的半透明覆盖

Removing semi-transparent overlay on flattened image

这个问题的解决方案似乎不存在,但我很难相信这是不可能的。

假设您有一张带有半透明叠加层(颜色=黑色,透明度=50%)的图像,无论是覆盖整个图像还是仅覆盖一部分,都没有关系。如何将下面的像素转换为其原始颜色,实质上是去除黑色覆盖层。

就像一个简单的代数方程一样,我们应该能够重新排列变量来求解叠加层下的 "original pixels"。类似于 -

原始像素 * 半透明覆盖 = 新像素
原始像素 = 半透明覆盖 / 新像素

显然,这样的等式过于简化了问题,但我认为这可以说明我的观点。既然我们知道颜色和透明度百分比,为什么我们不能 "retrieve" 底层像素的颜色?

编辑:评论中的 Mark Ransom 是正确的,如果您知道透明度为 50%,那么只需乘以 2 即可得到原始颜色。关于如何将其应用于 Photoshop 或 GIMP 中的整个区域的任何建议?当然逐个像素地做是不可能的。

谢谢!

"divide" 层模式会做你想做的事。在半透明黑色的情况下,使用值等于覆盖层的不透明度值的灰色。