1

也许有人可以提供帮助,我正在尝试以一种形式显示一个透明的 PNG 作为启动屏幕。表格上的代码是:

Sub Form_Paint(ByVal s As Object, ByVal e As PaintEventArgs) Handles Me.Paint
  Dim r As New Rectangle(0, 0, 728, 462)
  Dim newBitmap As Bitmap
  newBitmap = Bitmap.FromFile("Logo.png")
  e.Graphics.DrawImage(newBitmap, r)
end sub

生成的图像显示有一个难看的“羽毛”边框。看这里:
在此处输入图像描述

该图像是 32 位 ARGB,边缘已被赋予透明度。这是嵌入在网页中的 PNG:

在此处输入图像描述

有谁知道如何摆脱边界?

4

1 回答 1

0

尝试这个:

e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
e.Graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;

另请参阅: 如何使用 C# 绘制平滑图像?

无论如何,正如另一位用户所指出的,问题出在没有任何抗锯齿的情况下创建的图像。上面的代码片段将缓解这个问题,但最好的选择是调整图像。

问候

于 2013-08-07T07:32:00.203 回答