0

画面にレンダリングしている詳細度の低い画像がいくつかあります。ビットマップをバッファとして使用しています。.net で (「最近隣」を使用して) ビットマップのサイズを変更する方法はありますか?

私は VB.net を使用しているので、すべての .net ソリューションが受け入れられます。

4

1 に答える 1

5

最も近い近隣補間を使用して、「SmallImage」という名前のリソースとして追加されたスケーリングされた画像を描画する単純な Winforms の例:

Public Class Form1
    Public Sub New()
        InitializeComponent()
        Me.SetStyle(ControlStyles.ResizeRedraw, True)
        Me.DoubleBuffered = True
        Me.bmp = My.Resources.SmallImage
    End Sub

    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        e.Graphics.InterpolationMode = Drawing2D.InterpolationMode.NearestNeighbor
        e.Graphics.PixelOffsetMode = Drawing2D.PixelOffsetMode.Half
        Dim h = Me.ClientSize.Width * bmp.Height / bmp.Width
        e.Graphics.DrawImage(bmp, New Rectangle(0, 0, Me.ClientSize.Width, h))
    End Sub

    Private bmp As Bitmap

End Class
于 2011-09-25T18:56:16.493 に答える