我正在使用该方法将文本(使用TextRenderer.DrawText
)渲染到一个位图上,该位图是背景色纯白色(Color.White
)FillRectangle
。然后我将TransparentBlt
这个 Bitmap 放到一个包含彩色背景图片的内存 DC 上,使用Color.White And &HFFFFFF
透明颜色的 RGB 值(crTransparent
参数),如下所示:
TransparentBlt(hDestMemDc, 0, 0, iTextWidth, iTextHeight, hTextMemDc, 0, 0, iTextWidth, iTextHeight, Color.White.ToArgb() And &HFFFFFF)
{然后我BitBlt
将组合图像放到我的控件表面上,但这不是那么相关}
尽管呈现的文本清晰清晰,但其TransparentBlt
结果并不清晰。
这是文本的快照,呈现在白色背景上(这是图像而不是键入的文本):
这是在彩色背景上对上面的图像进行 Trans-Blitting 的结果:
请注意,白色(透明)点仍在红色文本周围。
此外,请注意在图像左侧绘制的白色垂直线,以及在右上角绘制的类似较短的水平线。
我正在使用 VB.NET 2005(又名 VB8)。您的建议将不胜感激。