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

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

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

Image Cut, Copy and Paste

<source lang="vbnet">Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms Imports System.Math

public class ImageCutCopyPaste

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

End class Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Clipboard.SetDataObject(PictureBox1.Image, True)
       PictureBox1.CreateGraphics.Clear(Me.PictureBox1.BackColor)
   End Sub
   Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
       Dim clipboard_data As IDataObject
       clipboard_data = Clipboard.GetDataObject()
       If clipboard_data.GetDataPresent(DataFormats.Bitmap) Then
           PictureBox2.CreateGraphics.DrawImage(clipboard_data.GetData(DataFormats.Bitmap), 0, 0)
       End If
   End Sub
   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
       Clipboard.SetDataObject(PictureBox1.Image, True)
   End Sub

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

   Inherits System.Windows.Forms.Form
   "Form overrides dispose to clean up the component list.
   <System.Diagnostics.DebuggerNonUserCode()> _
   Protected 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.PictureBox1 = New System.Windows.Forms.PictureBox
       Me.PictureBox2 = New System.Windows.Forms.PictureBox
       Me.Button1 = New System.Windows.Forms.Button
       Me.Button2 = New System.Windows.Forms.Button
       Me.Button3 = New System.Windows.Forms.Button
       CType(Me.PictureBox1, System.ruponentModel.ISupportInitialize).BeginInit()
       CType(Me.PictureBox2, System.ruponentModel.ISupportInitialize).BeginInit()
       Me.SuspendLayout()
       "
       "PictureBox1
       "
       Me.PictureBox1.Image = System.Drawing.Image.FromFile("yourfile.jpg")
       Me.PictureBox1.Location = New System.Drawing.Point(17, 19)
       Me.PictureBox1.Name = "PictureBox1"
       Me.PictureBox1.Size = New System.Drawing.Size(217, 130)
       Me.PictureBox1.TabIndex = 0
       Me.PictureBox1.TabStop = False
       "
       "PictureBox2
       "
       Me.PictureBox2.Location = New System.Drawing.Point(250, 19)
       Me.PictureBox2.Name = "PictureBox2"
       Me.PictureBox2.Size = New System.Drawing.Size(218, 129)
       Me.PictureBox2.TabIndex = 1
       Me.PictureBox2.TabStop = False
       "
       "Button1
       "
       Me.Button1.Location = New System.Drawing.Point(64, 189)
       Me.Button1.Name = "Button1"
       Me.Button1.Size = New System.Drawing.Size(75, 23)
       Me.Button1.TabIndex = 2
       Me.Button1.Text = "Cut"
       Me.Button1.UseVisualStyleBackColor = True
       "
       "Button2
       "
       Me.Button2.Location = New System.Drawing.Point(207, 189)
       Me.Button2.Name = "Button2"
       Me.Button2.Size = New System.Drawing.Size(75, 23)
       Me.Button2.TabIndex = 3
       Me.Button2.Text = "Copy"
       Me.Button2.UseVisualStyleBackColor = True
       "
       "Button3
       "
       Me.Button3.Location = New System.Drawing.Point(354, 189)
       Me.Button3.Name = "Button3"
       Me.Button3.Size = New System.Drawing.Size(75, 23)
       Me.Button3.TabIndex = 4
       Me.Button3.Text = "Paste"
       Me.Button3.UseVisualStyleBackColor = True
       "
       "Form1
       "
       Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
       Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
       Me.ClientSize = New System.Drawing.Size(486, 240)
       Me.Controls.Add(Me.Button3)
       Me.Controls.Add(Me.Button2)
       Me.Controls.Add(Me.Button1)
       Me.Controls.Add(Me.PictureBox2)
       Me.Controls.Add(Me.PictureBox1)
       CType(Me.PictureBox1, System.ruponentModel.ISupportInitialize).EndInit()
       CType(Me.PictureBox2, System.ruponentModel.ISupportInitialize).EndInit()
       Me.ResumeLayout(False)
   End Sub
   Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
   Friend WithEvents PictureBox2 As System.Windows.Forms.PictureBox
   Friend WithEvents Button1 As System.Windows.Forms.Button
   Friend WithEvents Button2 As System.Windows.Forms.Button
   Friend WithEvents Button3 As System.Windows.Forms.Button

End Class</source>

Image Cut, Copy and Paste with ClipBoard

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

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

End class Public Class Form1

   Inherits System.Windows.Forms.Form
   Public Sub New()
       MyBase.New()
       InitializeComponent()
   End Sub
   Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
       If disposing Then
           If Not (components Is Nothing) Then
               components.Dispose()
           End If
       End If
       MyBase.Dispose(disposing)
   End Sub
   Private components As System.ruponentModel.IContainer
   Friend WithEvents MainMenu1 As System.Windows.Forms.MainMenu
   Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
   Friend WithEvents Splitter1 As System.Windows.Forms.Splitter
   Friend WithEvents PictureBox2 As System.Windows.Forms.PictureBox
   Friend WithEvents MenuItem1 As System.Windows.Forms.MenuItem
   Friend WithEvents MenuItem2 As System.Windows.Forms.MenuItem
   Friend WithEvents MenuItem3 As System.Windows.Forms.MenuItem
   Friend WithEvents MenuItem4 As System.Windows.Forms.MenuItem
   Friend WithEvents MenuItem5 As System.Windows.Forms.MenuItem
   Friend WithEvents MenuItem6 As System.Windows.Forms.MenuItem
   Friend WithEvents MenuItem7 As System.Windows.Forms.MenuItem
   Friend WithEvents MenuItem8 As System.Windows.Forms.MenuItem
   Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
   Friend WithEvents SaveFileDialog1 As System.Windows.Forms.SaveFileDialog
   <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
       Me.MainMenu1 = New System.Windows.Forms.MainMenu
       Me.MenuItem1 = New System.Windows.Forms.MenuItem
       Me.MenuItem2 = New System.Windows.Forms.MenuItem
       Me.MenuItem3 = New System.Windows.Forms.MenuItem
       Me.MenuItem4 = New System.Windows.Forms.MenuItem
       Me.MenuItem5 = New System.Windows.Forms.MenuItem
       Me.MenuItem6 = New System.Windows.Forms.MenuItem
       Me.MenuItem7 = New System.Windows.Forms.MenuItem
       Me.MenuItem8 = New System.Windows.Forms.MenuItem
       Me.PictureBox1 = New System.Windows.Forms.PictureBox
       Me.Splitter1 = New System.Windows.Forms.Splitter
       Me.PictureBox2 = New System.Windows.Forms.PictureBox
       Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog
       Me.SaveFileDialog1 = New System.Windows.Forms.SaveFileDialog
       Me.SuspendLayout()
       "
       "MainMenu1
       "
       Me.MainMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.MenuItem1, Me.MenuItem5})
       "
       "MenuItem1
       "
       Me.MenuItem1.Index = 0
       Me.MenuItem1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.MenuItem2, Me.MenuItem3, Me.MenuItem4})
       Me.MenuItem1.Text = "File"
       "
       "MenuItem2
       "
       Me.MenuItem2.Index = 0
       Me.MenuItem2.Text = "Open"
       "
       "MenuItem3
       "
       Me.MenuItem3.Index = 1
       Me.MenuItem3.Text = "Save"
       "
       "MenuItem4
       "
       Me.MenuItem4.Index = 2
       Me.MenuItem4.Text = "Exit"
       "
       "MenuItem5
       "
       Me.MenuItem5.Index = 1
       Me.MenuItem5.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.MenuItem6, Me.MenuItem7, Me.MenuItem8})
       Me.MenuItem5.Text = "Exit"
       "
       "MenuItem6
       "
       Me.MenuItem6.Index = 0
       Me.MenuItem6.Text = "Copy"
       "
       "MenuItem7
       "
       Me.MenuItem7.Index = 1
       Me.MenuItem7.Text = "Cut"
       "
       "MenuItem8
       "
       Me.MenuItem8.Index = 2
       Me.MenuItem8.Text = "Paste"
       "
       "PictureBox1
       "
       Me.PictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
       Me.PictureBox1.Dock = System.Windows.Forms.DockStyle.Left
       Me.PictureBox1.Location = New System.Drawing.Point(0, 0)
       Me.PictureBox1.Name = "PictureBox1"
       Me.PictureBox1.Size = New System.Drawing.Size(216, 266)
       Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage
       Me.PictureBox1.TabIndex = 0
       Me.PictureBox1.TabStop = False
       "
       "Splitter1
       "
       Me.Splitter1.Location = New System.Drawing.Point(216, 0)
       Me.Splitter1.Name = "Splitter1"
       Me.Splitter1.Size = New System.Drawing.Size(8, 266)
       Me.Splitter1.TabIndex = 1
       Me.Splitter1.TabStop = False
       "
       "PictureBox2
       "
       Me.PictureBox2.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
       Me.PictureBox2.Dock = System.Windows.Forms.DockStyle.Fill
       Me.PictureBox2.Location = New System.Drawing.Point(224, 0)
       Me.PictureBox2.Name = "PictureBox2"
       Me.PictureBox2.Size = New System.Drawing.Size(248, 266)
       Me.PictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage
       Me.PictureBox2.TabIndex = 2
       Me.PictureBox2.TabStop = False
       "
       "OpenFileDialog1
       "
       Me.OpenFileDialog1.Filter = "BMP(*.bmp)|*.bmp"
       "
       "SaveFileDialog1
       "
       Me.SaveFileDialog1.Filter = "BMP(*.bmp)|*.bmp"
       "
       "Form1
       "
       Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
       Me.ClientSize = New System.Drawing.Size(472, 266)
       Me.Controls.Add(Me.PictureBox2)
       Me.Controls.Add(Me.Splitter1)
       Me.Controls.Add(Me.PictureBox1)
       Me.Menu = Me.MainMenu1
       Me.ResumeLayout(False)
   End Sub
   Dim pic As Image
   Dim x As New DataObject
   Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click
       OpenFileDialog1.ShowDialog()
       pic = New Bitmap(OpenFileDialog1.FileName)
       PictureBox1.Image = pic
   End Sub
   Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
       Dim path As String
       pic = PictureBox2.Image
       SaveFileDialog1.ShowDialog()
       pic.Save(SaveFileDialog1.FileName)
   End Sub
   Private Sub MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem4.Click
       End
   End Sub
   Private Sub MenuItem6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem6.Click
       x.SetData(DataFormats.Bitmap, False, pic)
       System.Windows.Forms.Clipboard.SetDataObject(x)
   End Sub
   Private Sub MenuItem7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem7.Click
       x.SetData(DataFormats.Bitmap, False, pic)
       System.Windows.Forms.Clipboard.SetDataObject(x)
       PictureBox1.Image = Nothing
   End Sub
   Private Sub MenuItem8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem8.Click
       x = System.Windows.Forms.Clipboard.GetDataObject
       pic = x.GetData(DataFormats.Bitmap)
       PictureBox2.Image = pic
   End Sub

End Class</source>