Измените размер растрового изображения, используя «Nearest Neighbor» в .net - PullRequest
0 голосов
/ 25 сентября 2011

У меня есть некоторые изображения с низкой детализацией, которые я рендую на экран.Я использую растровое изображение в качестве буфера.Есть ли способ изменить размер растрового изображения (используя «Ближайший сосед») в .net?

Я использую VB.net, поэтому все решения .net приемлемы.

1 Ответ

5 голосов
/ 25 сентября 2011

Простой пример Winforms, который рисует масштабированное изображение, добавленное как ресурс с именем «SmallImage» с интерполяцией ближайшего соседа:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...