【问题标题】:How to determine the transparency color of a bitmap如何确定位图的透明度颜色
【发布时间】:2025-12-02 09:05:02
【问题描述】:

我知道你可以通过编程方式determine the tranparency color of a .gif

有没有办法对位图做同样的事情?

现在,我通过在外边缘采样来启发式地执行此操作,但这当然不是 100% 可靠的。

【问题讨论】:

    标签: .net imaging


    【解决方案1】:

    我认为 BMP 文件格式不支持透明度的概念。我的理解是,如果 BMP 图像与透明度一起使用,它使用应用程序定义的颜色,如 RGB(255,0,255) 来指定透明区域。

    【讨论】:

    • 正确。有时应用程序会使用位图的第一个像素来指定透明颜色,例如洋红色。但这完全取决于应用程序如何屏蔽位图。
    • +1 是的,这就是我得出的结论。只是希望我的推理有漏洞。会打开一段时间。
    • 我相信对保存 Alpha 通道的 bmpx 格式有一些支持,但 @Jason 和 @Josh 对于直接位图是绝对正确的。
    【解决方案2】:

    你可以做的是:

    • 对被遮挡的图像进行采样。
    • 应用精明的边缘检测算法来检测位图图像中对象的外边缘。
    • 您可以是近似的,您可能还需要稍微调整以仅获取外边缘。
    • 然后您可以执行这 2 个样本的交集,以获得跨越位图图像边缘的遮挡图像。
    • 现在,您将拥有 2 张图像。确保遮挡提取的图像是透明的并且在顶部。
    • 只需将原始位图放在提取的图像下方,您的位图图像也将变得透明! :)

    【讨论】:

      最近更新 更多