使用 .Net GDI 擦除像素+
如何使用 .Net GDI+ 或 API 调用将像素的 Alpha 通道设置为零? 如何将形状区域设置为透明(例如,具有某种“擦除”画笔并将其与 FillEllipse() 或 FillRectangle() 方法一起使用)?
谢谢。
How can I set the alpha channel of a pixel to zero using .Net GDI+ or API calls?
How can I set to transparent a shaped area (for instance, having sort of an"Erasing" brush and using it with FillEllipse() or FillRectangle() methods) ?
Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用由 alpha 为 0 的颜色 (Color.FromArgb) 制成的画笔。由于 RGB 值不再重要,您不妨使用 Brushes.Transparent。通过使用 Graphics.FillRectangle() 绘制 1x1 的矩形,使单个像素透明。
Bitmap.MakeTransparent() 是快速使任意背景颜色透明的另一种方法。
You can use a brush that's made from a Color that has an alpha of 0 (Color.FromArgb). Since the RGB values don't really matter anymore, you might as well use Brushes.Transparent. Make a single pixel transparent by drawing a rectangle of 1x1 with Graphics.FillRectangle().
Bitmap.MakeTransparent() is another way to quickly make an arbitrary background color transparent.
这很容易。将 Graphics 对象的 CompostingMode 设置为 SourceCopy,并使用 Fill 函数和由完全透明的颜色(alpha 分量为 0)创建的 Brush。
Its pretty easy. Set the CompostingMode of the Graphics object to SourceCopy and use the Fill functions with a Brush created from a color with complete transparency(alpha component being 0).