【发布时间】:2021-12-21 07:29:22
【问题描述】:
我正在尝试将窗口形式转换为透明的,并使其仅显示一个对象。但它仍然在我的对象周围有一条线(笔划),它并不像我想要的那样完美。我怎样才能取出线(中风)? (附上图片对比。)
这是我的代码:
private void Form1_Load(object sender, EventArgs e)
{
this.FormBorderStyle = FormBorderStyle.None;
this.Width = this.pictureBox1.Width;
this.Height = this.pictureBox1.Height;
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.BackColor = Color.Black;
this.TransparencyKey = this.pictureBox1.BackColor;
}
【问题讨论】:
-
很确定这与图像有关,而不是在代码中,图像本身有轮廓
-
您能发布有关图像格式的详细信息吗?所以我们可以知道它是否支持 alpha 通道,这将是最有可能导致这张图片出现边缘问题的原因,而没有像 png 文件那样正确的 alpha 通道。抗锯齿永远不会正确渲染。抗锯齿是您需要将弯曲边缘与背景混合,在透明背景的情况下,您需要 alpha 在边缘具有半透明不透明度来实现这一点,这只是因为您无法知道背景将是什么。跨度>
-
是的,格式文件是.png。我已经从互联网上获取了它。 pngmart.com/image/16212
-
边框像素很可能是半透明的。 TransparencyKey 不支持。您需要删除它们或将它们填充到 alpha=255。如果你需要一个例行程序来做到这一点,那就这么说吧..
标签: c# visual-studio-2015