我有一个没有透明度的RGB位图,它有白色背景和黑色文字,对白色背景消除锯齿。我想创建一个新的Bitmap:
新的Bitmap可以是任何新的背景颜色,并且正确地消除了该背景颜色的别名。
我发现最问世的问题是:Change background colour of an anti-aliased image using C# with anti-aliasing。但是,我从一个定义了透明度的图像开始,所以我认为它作为一个新问题更好,然后作为对该问题的评论。
答案 0 :(得分:0)
你可能想要一个像'photoshop:https://en.wikipedia.org/wiki/Blend_modes#Multiply
中的'Multiply Blend Mode'您所指的问题似乎表明了这一点的基本逻辑。不幸的是,我不能给出或找到具体的示例代码。
如果你想让'灰色'像素透明,我会保持颜色为黑色,而是改变像素的透明度。 例如,如果您的像素为50%黑色,而不是使用
ARGB(255, 128, 128, 128)
你可以成功
ARGB(128, 255, 255, 255)
当然有一种更好的“算法”方法(也许还会增加alpha通道),我知道这可能不是你期望的“开箱即用”代码示例,但我希望这可能有所帮助你找到了解决方案......