VB.Net Tutorial/2D Graphics/InterpolationMode — различия между версиями

Материал из VB Эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Текущая версия на 15:54, 26 мая 2010

Interpolation mode

<source lang="vbnet">Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms public class InterpolationModeDemo

  public Shared Sub Main
       Application.Run(New Form1)
  End Sub

End class public class Form1

 Inherits System.Windows.Forms.Form
 Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
       Dim bm As New Bitmap("yourfile.jpg")
       e.Graphics.DrawImage(bm, 10, 10)
       Dim x As Integer = 10
       Dim y As Integer = 120
       DrawSample(e.Graphics, bm, Drawing2D.InterpolationMode.Default, x, y)
       DrawSample(e.Graphics, bm, Drawing2D.InterpolationMode.Low, x, y)
       DrawSample(e.Graphics, bm, Drawing2D.InterpolationMode.High, x, y)
       DrawSample(e.Graphics, bm, Drawing2D.InterpolationMode.Bilinear, x, y)
       x = 10
       y += 100
       DrawSample(e.Graphics, bm, Drawing2D.InterpolationMode.Bicubic, x, y)
       DrawSample(e.Graphics, bm, Drawing2D.InterpolationMode.NearestNeighbor, x, y)
       DrawSample(e.Graphics, bm, Drawing2D.InterpolationMode.HighQualityBilinear, x, y)
       DrawSample(e.Graphics, bm, Drawing2D.InterpolationMode.HighQualityBicubic, x, y)
   End Sub
   Private Sub DrawSample(ByVal gr As Graphics, ByVal bm As Bitmap, ByVal interpolation_mode As Drawing2D.InterpolationMode, ByRef x As Integer, ByVal y As Integer)
       gr.DrawString(interpolation_mode.ToString, Me.Font, Brushes.Black, x, y)
       gr.InterpolationMode = interpolation_mode
       gr.DrawImage(bm, x, y + 20, 50, 50)
       gr.InterpolationMode = interpolation_mode
       Dim src_rect As New Rectangle(35, 35, 30, 30)
       Dim dest_rect As New Rectangle(x + 60, y + 20, 50, 50)
       gr.DrawImage(bm, dest_rect, src_rect, GraphicsUnit.Pixel)
       gr.DrawRectangle(Pens.Black, dest_rect)
       x += 120
   End Sub
 Public Sub New()
  
   MyBase.New()
   Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
   Me.ClientSize = New System.Drawing.Size(292, 273)
   Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
 End Sub

End Class</source>