VB.Net Tutorial/2D Graphics/CompositingQuality

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

CompositingQuality.GammaCorrected

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

  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 g As Graphics = Me.CreateGraphics()
       g.Clear(Me.BackColor)
       Dim rect1 As New Rectangle(20, 20, 100, 100)
       Dim rect2 As New Rectangle(200, 20, 100, 100)
       Dim redBrush As New SolidBrush(Color.FromArgb(150, 255, 0, 0))
       Dim greenBrush As New SolidBrush(Color.FromArgb(180, 0, 255, 0))
       Dim tempBmp As New Bitmap(200, 150)
       Dim tempGraphics As Graphics = Graphics.FromImage(tempBmp)
       tempGraphics.rupositingMode = CompositingMode.SourceOver
       tempGraphics.rupositingQuality = CompositingQuality.GammaCorrected
       tempGraphics.FillRectangle(redBrush, rect1)
       rect1.X += 30
       rect1.Y += 30
       tempGraphics.FillEllipse(greenBrush, rect1)
       g.rupositingQuality = CompositingQuality.GammaCorrected
       g.DrawImage(tempBmp, 0, 0)
       g.FillRectangle(Brushes.Red, rect2)
       rect2.X += 30
       rect2.Y += 30
       g.FillEllipse(Brushes.Green, rect2)
       tempBmp.Dispose()
       g.Dispose()
 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>

CompositingQuality.HighQuality

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

  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 g As Graphics = Me.CreateGraphics()
       g.Clear(Me.BackColor)
       g.SmoothingMode = SmoothingMode.AntiAlias
       g.rupositingQuality = CompositingQuality.HighQuality
       Dim path As New GraphicsPath
       path.AddEllipse(20, 20, 200, 200)
       Dim pthGrBrush As New PathGradientBrush(path)
       Dim transBlackColor As Color = color.FromArgb(90, 255, 255, 255)
       Dim color2() As Color = {Color.Black}
       pthGrBrush.SurroundColors = color2
       pthGrBrush.CenterColor = color.Red
       g.FillPath(pthGrBrush, path)
       g.Dispose()
 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>

CompositingQuality.HighSpeed

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

  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 g As Graphics = Me.CreateGraphics()
       g.Clear(Me.BackColor)
       Dim redPen As New Pen(Color.Red, 20)
       Dim bluePen As New Pen(Color.Blue, 10)
       Dim gContainer1 As GraphicsContainer = g.BeginContainer()
       g.SmoothingMode = SmoothingMode.AntiAlias
       g.rupositingQuality = CompositingQuality.GammaCorrected
       g.DrawEllipse(redPen, 10, 10, 100, 50)
       g.DrawRectangle(bluePen, 210, 0, 100, 100)
       Dim gContainer2 As GraphicsContainer = g.BeginContainer()
       g.SmoothingMode = SmoothingMode.HighSpeed
       g.rupositingQuality = CompositingQuality.HighSpeed
       g.DrawEllipse(redPen, 10, 150, 100, 50)
       g.DrawRectangle(bluePen, 210, 150, 100, 100)
       g.EndContainer(gContainer2)
       g.EndContainer(gContainer1)
       redPen.Dispose()
       bluePen.Dispose()
       g.Dispose()
 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>

Graphics CompositingMode.SourceOver

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

  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 g As Graphics = Me.CreateGraphics()
       g.Clear(Me.BackColor)
       Dim rect1 As New Rectangle(20, 20, 100, 100)
       Dim rect2 As New Rectangle(200, 20, 100, 100)
       Dim redBrush As New SolidBrush(Color.FromArgb(150, 255, 0, 0))
       Dim greenBrush As New SolidBrush(Color.FromArgb(180, 0, 255, 0))
       Dim tempBmp As New Bitmap(200, 150)
       Dim tempGraphics As Graphics = Graphics.FromImage(tempBmp)
       tempGraphics.rupositingMode = CompositingMode.SourceOver
       tempGraphics.rupositingQuality = CompositingQuality.GammaCorrected
       tempGraphics.FillRectangle(redBrush, rect1)
       rect1.X += 30
       rect1.Y += 30
       tempGraphics.FillEllipse(greenBrush, rect1)
       g.rupositingQuality = CompositingQuality.GammaCorrected
       g.DrawImage(tempBmp, 0, 0)
       g.FillRectangle(Brushes.Red, rect2)
       rect2.X += 30
       rect2.Y += 30
       g.FillEllipse(Brushes.Green, rect2)
       tempBmp.Dispose()
       g.Dispose()
 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>