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 です。これは、Web ページに埋め込まれた 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 に答える