Hallo!
Naja, so richtig beantwortet sind meine Fragen nicht ...
Hier ein wenig trivialer Code (Bilder und Text einfügen und
mit der Maus positionieren. Mausclick fixiert.)
Public Class Form1
Dim background_bmp As New Drawing.Bitmap(800, 600)
Dim background_graphics As Drawing.Graphics = _
Drawing.Graphics.FromImage(background_bmp)
Dim insert_bmp As Drawing.Bitmap
Dim WithEvents pbox As New PictureBox With {.Parent = Me, _
.Width = 800, .Height = 600, .BorderStyle = BorderStyle.FixedSingle, _
.Top = 25, .Left = 2, .BackgroundImage = background_bmp}
Dim textfont As _
New Drawing.Font("ARIAL", 12, FontStyle.Bold, GraphicsUnit.Pixel)
Dim textcolor As Drawing.Color = Drawing.Color.Blue
Dim background_color As Drawing.Color = Color.Beige
Dim WithEvents mnuMain As New MenuStrip With {.Parent = Me}
Dim WithEvents mnuBild As _
New ToolStripMenuItem With {.Text = "Bild laden"}
Dim WithEvents mnuText As _
New ToolStripMenuItem With {.Text = "Text eingeben"}
Dim WithEvents mnuSave As _
New ToolStripMenuItem With {.Text = "Bild speichern"}
Dim PicDialog As New OpenFileDialog With _
{.Filter = "Bilder|*.png", .Multiselect = False, _
.CheckFileExists = True, .Title = "Einzufügendes Bild"}
Dim m_x, m_y As Integer 'Mausposition speichern
Private Sub Form1_Load(sender As System.Object, _
e As System.EventArgs) Handles MyBase.Load
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.Fixed3D
Me.Width = 820 : Me.Height = 660
background_graphics.Clear(background_color)
mnuMain.Items.Add(mnuBild)
mnuMain.Items.Add(mnuText)
mnuMain.Items.Add(mnuSave)
End Sub
Private Sub mnuBild_Click(sender As Object, _
e As System.EventArgs) Handles mnuBild.Click
'Bild per Dialog wählen und laden
If PicDialog.ShowDialog() = _
Windows.Forms.DialogResult.Cancel Then Exit Sub
insert_bmp = New Drawing.Bitmap(PicDialog.FileName)
End Sub
Private Sub mnuText_Click(sender As Object, _
e As System.EventArgs) Handles mnuText.Click
'Text eingeben
Dim txt As String = InputBox("Text in Bild einfügen:")
If String.IsNullOrWhiteSpace(txt) Then Exit Sub
Dim textsize As Drawing.SizeF = _
background_graphics.MeasureString(txt, textfont)
insert_bmp = _
New Drawing.Bitmap(CInt(textsize.Width) + 4, CInt(textsize.Height) + 4)
Dim g As Drawing.Graphics = Drawing.Graphics.FromImage(insert_bmp)
g.DrawString(txt, textfont, New SolidBrush(textcolor), 1, 1)
End Sub
Private Sub pbox_MouseDown(sender As Object, _
e As System.Windows.Forms.MouseEventArgs) Handles pbox.MouseDown
If insert_bmp Is Nothing Then Exit Sub
'Bild in den Hintergrund übertragen (an aktueller Mausposition)
background_graphics.DrawImage(insert_bmp, m_x, m_y)
insert_bmp = Nothing
pbox.Refresh()
End Sub
Private Sub pbox_MouseMove(sender As Object, _
e As System.Windows.Forms.MouseEventArgs) Handles pbox.MouseMove
'Bild per Maus verschieben
If insert_bmp IsNot Nothing Then m_x = e.X : m_y = e.Y : pbox.Refresh()
End Sub
Private Sub pbox_Paint(sender As Object, _
e As System.Windows.Forms.PaintEventArgs) Handles pbox.Paint
If insert_bmp Is Nothing Then Exit Sub
'Bild an Mausposition zeichnen
e.Graphics.DrawImage(insert_bmp, m_x, m_y)
End Sub
Private Sub mnuSave_Click(sender As Object, _
e As System.EventArgs) Handles mnuSave.Click
background_bmp.Save("Ausgabebild.jpg", Drawing.Imaging.ImageFormat.Jpeg)
End Sub
End Class |