vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Animation: Bild in Picturebox verschieben 
Autor: Manfred X
Datum: 25.06.20 13:34

Wenn es nur um die Animation (= temporäre Anzeige) des Bildes geht,
kannst Du direkt in die Picturebox zeichen.
Public Class frmPicMove
 
    Dim bmp As Bitmap
    Dim bmp_rect As Rectangle
 
    Dim WithEvents timMove As New Timer With 
         {.Interval = 50, .Enabled = False}
    Dim WithEvents btnStart As New Button With 
         {.Parent = Me, .Width = 150, .Text = "Move"}
    Dim WithEvents pbMove As New PictureBox With 
        {.Parent = Me, .Top = 50,
        .SizeMode = PictureBoxSizeMode.Zoom}
 
    Dim startleft As Integer, anim_left As Integer
 
 
    Private Sub frmPicMove_Load(sender As Object, 
                          e As EventArgs) Handles MyBase.Load
 
        Me.Width = 1050
        Me.Height = 550
 
        pbMove.Width = Me.Width - 20
        pbMove.Height = Me.ClientSize.Height - (btnStart.Top + btnStart.Height _
          + 20)
 
        'anzuzeigende Bilddatei
        Dim picfile As String = "G:\Daten\x1.jpg"
 
        'in Box eingepaßte Bildgröße berechnen (Funktion von oben)
        bmp_rect = GetPicRect(picfile, pbMove.Size)
 
        'Bild aus Datei in passender Größe erstellen
        Using bmp_orig As New Bitmap(picfile)
            bmp = New Bitmap(bmp_orig, New Size(bmp_rect.Width, _
              bmp_rect.Height))
        End Using
 
        pbMove.BackColor = Color.Yellow
 
        'linke Bildposition in der Box zum Verschieben
        'Die Box muss dabei wesentlichbreiter sein als das eingepaßte Bild
        startleft = pbMove.Width - bmp.Width
        anim_left = startleft + 5
 
    End Sub
 
 
    Private Sub pbMove_Paint(sender As Object, e As PaintEventArgs) Handles _
      pbMove.Paint
 
        'aktuelles Bildrechteck in der Box
        Dim rect_paint As New Rectangle(anim_left, 0, bmp_rect.Width, _
          bmp_rect.Height)
 
        e.Graphics.Clear(Color.Yellow)
        e.Graphics.DrawImage(bmp, rect_paint, New Rectangle(0, 0, bmp.Width, _
          bmp.Height),
                             GraphicsUnit.Pixel)
    End Sub
 
 
 
    Private Sub timMove_Tick(sender As Object, e As EventArgs) Handles _
      timMove.Tick
 
        'um 5 Pixel nach links verschieben
        anim_left -= 5
        If anim_left < 0 Then anim_left = startleft
        'neu zeichnen lassen (Paint wird gerufen) 
        pbMove.Invalidate()
 
    End Sub
 
 
    Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles _
      btnStart.Click
 
        timMove.Enabled = Not timMove.Enabled
    End Sub
End Class


Beitrag wurde zuletzt am 25.06.20 um 13:46:29 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Bild auf Bild einblenden1.178Dikn22.06.20 11:57
Re: Bild auf Bild einblenden640Manfred X22.06.20 13:14
Bild-Datei zentriert in eine vorgegebene Fläche einpassen679Manfred X22.06.20 14:15
Re: Bild auf Bild einblenden569Dikn23.06.20 13:41
Re: Bild auf Bild einblenden583Manfred X23.06.20 16:35
Re: Bild auf Bild einblenden614Dikn25.06.20 12:26
Animation: Bild in Picturebox verschieben877Manfred X25.06.20 13:34
Re: Bild auf Bild einblenden517Dikn26.06.20 08:48
Re: Bild auf Bild einblenden545Manfred X26.06.20 11:40
Animation: Bild über Bild schieben599Manfred X26.06.20 12:26
Re: Bild auf Bild einblenden594Dikn28.06.20 13:50
Re: Bild auf Bild einblenden604Dikn28.06.20 14:04

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel