登录
首页 >  Golang >  Go问答

如何在golang中将白色背景更改为透明?

来源:stackoverflow

时间:2024-03-31 14:57:34 251浏览 收藏

小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《如何在golang中将白色背景更改为透明?》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

问题内容

如何将Golang image.Image的白色背景更改为透明?

我想把白色背景变成半透明颜色,你有什么建议吗?


解决方案


这通常是不可能的,但有一些启发式方法可以尝试这一点。

为什么不可能?

如果原始图像具有一些透明像素并在纯白色背景(或任何已知背景)上渲染,则生成的图像中会丢失信息。例如,粉红色像素是由具有一定透明度的红色像素创建的,还是由不具有透明度的真正粉红色像素创建的?

即使是纯白色像素也可能最初是全白的,或者完全透明的,或者介于两者之间。

启发式方法

如果您了解原始图像或可以通过查看图像来推断某些内容,您也许能够推断出原始像素的颜色和透明度。简单的第一步是,如果外部像素是白色,那么您可能需要用完全透明的像素淹没该区域。此外,彩色区域内的白色区域可能是孔,也可以是透明的。

接下来,您可以推断单一颜色对象周围的边框像素的颜色(假设使用透明度来消除锯齿)。例如,对于圆周上带有粉红色像素的红色圆圈,它们可能最初是红色的,但具有一定的透明度,导致它们呈现为不同深浅的粉红色。对于更复杂的多色形状,您可以通过使用判断、原始图像的知识/猜测以及如何执行抗锯齿的知识来手动编辑图像,从而获得合理的结果。

多年前,我编写了一个 Paint.Net 插件(C#)来自动执行此类操作,有时它会给出合理的结果,但通常您需要手动完成。

今天关于《如何在golang中将白色背景更改为透明?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>