VB.Net by API/System.Drawing.Imaging/Metafile

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

New Metafile

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

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

End class

Public Class Form1

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Const WID As Integer = 200
       Dim file_name As String = "test.wmf"
       Dim me_gr As Graphics = Me.CreateGraphics
       Dim me_hdc As IntPtr = me_gr.GetHdc
       Dim bounds As New RectangleF(0, 0, WID, WID)
       Dim mf As New Metafile(file_name, me_hdc, bounds, MetafileFrameUnit.Pixel)
       me_gr.ReleaseHdc(me_hdc)
       Dim gr As Graphics = Graphics.FromImage(mf)
       gr.PageUnit = GraphicsUnit.Pixel
       gr.Clear(Color.White)
       gr.DrawEllipse(Pens.Red, bounds)
       gr.DrawLine(Pens.Blue, 0, 0, WID, WID)
       gr.DrawLine(Pens.Blue, WID, 0, 0, WID)
       gr.Dispose()
       mf.Dispose()
       mf = New Metafile(file_name)
       Dim bm As New Bitmap(WID, WID)
       gr = Graphics.FromImage(bm)
       Dim dest_bounds As New RectangleF(0, 0, WID, WID)
       Dim source_bounds As New RectangleF(0, 0, WID + 1, WID + 1)
       gr.DrawImage(mf, bounds, source_bounds, GraphicsUnit.Pixel)
       picOrig.SizeMode = PictureBoxSizeMode.AutoSize
       picOrig.Image = bm
       gr.Dispose()
       mf.Dispose()
       mf = New Metafile(file_name)
       picSmall.SetBounds(picOrig.Right + 10, picOrig.Top,picOrig.Width \ 2, picOrig.Height \ 2)
       bm = New Bitmap(picSmall.ClientSize.Width,picSmall.ClientSize.Height)
       gr = Graphics.FromImage(bm)
       gr.ScaleTransform(0.5, 0.5)
       gr.DrawImage(mf, bounds, source_bounds, GraphicsUnit.Pixel)
       picSmall.Image = bm
       gr.Dispose()
       mf.Dispose()
   End Sub

End Class <Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()> _ Partial Public Class Form1

   Inherits System.Windows.Forms.Form
   "Form overrides dispose to clean up the component list.
   <System.Diagnostics.DebuggerNonUserCode()> _
   Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
       If disposing AndAlso components IsNot Nothing Then
           components.Dispose()
       End If
       MyBase.Dispose(disposing)
   End Sub
   "Required by the Windows Form Designer
   Private components As System.ruponentModel.IContainer
   "NOTE: The following procedure is required by the Windows Form Designer
   "It can be modified using the Windows Form Designer.  
   "Do not modify it using the code editor.
   <System.Diagnostics.DebuggerStepThrough()> _
   Private Sub InitializeComponent()
       Me.picSmall = New System.Windows.Forms.PictureBox
       Me.picOrig = New System.Windows.Forms.PictureBox
       CType(Me.picSmall, System.ruponentModel.ISupportInitialize).BeginInit()
       CType(Me.picOrig, System.ruponentModel.ISupportInitialize).BeginInit()
       Me.SuspendLayout()
       "
       "picSmall
       "
       Me.picSmall.Location = New System.Drawing.Point(64, 8)
       Me.picSmall.Name = "picSmall"
       Me.picSmall.Size = New System.Drawing.Size(32, 24)
       Me.picSmall.TabIndex = 3
       Me.picSmall.TabStop = False
       "
       "picOrig
       "
       Me.picOrig.Location = New System.Drawing.Point(8, 8)
       Me.picOrig.Name = "picOrig"
       Me.picOrig.Size = New System.Drawing.Size(48, 56)
       Me.picOrig.TabIndex = 2
       Me.picOrig.TabStop = False
       "
       "Form1
       "
       Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
       Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
       Me.ClientSize = New System.Drawing.Size(326, 215)
       Me.Controls.Add(Me.picSmall)
       Me.Controls.Add(Me.picOrig)
       Me.Name = "Form1"
       Me.Text = "MakeMetafile"
       CType(Me.picSmall, System.ruponentModel.ISupportInitialize).EndInit()
       CType(Me.picOrig, System.ruponentModel.ISupportInitialize).EndInit()
       Me.ResumeLayout(False)
   End Sub
   Friend WithEvents picSmall As System.Windows.Forms.PictureBox
   Friend WithEvents picOrig As System.Windows.Forms.PictureBox

End Class


 </source>