vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2020
 
zurück

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

VB.NET - Fortgeschrittene
Bild auf Bild einblenden 
Autor: Dikn
Datum: 22.06.20 11:57

Hallo!
Ich möchte ein Bild über ein anderes Bild schieben
Funktioniert mit diesem Code:

PictureBox [Pb1] – Size: 560/315 - SizeMode: Normal
PictureBox [Pb2] – Size: 560/315 - SizeMode: Zoom

Public Class frmMain
    Private ActivePic, NextPic As Bitmap
    Private PicBoxRect As New Rectangle(0, 0, 560, 315)
    Private i As Integer = 0
    Private strW, strH As String
 
    Private Sub Form4_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        PB2.Image = New Bitmap("C:\...\xxx.jpg")      '  561x637 - 0,880...
        Using bmp1 As New Bitmap(560, 315)
            PB2.BackColor = Color.Green
            PB2.DrawToBitmap(bmp1, PicBoxRect)
            PB1.Image = New Bitmap(bmp1)
            ActivePic = New Bitmap(bmp1)
        End Using
 
        PB2.Image = New Bitmap("C:\...\yyy.jpg")      ' 1920x1080 - 1,777...
        Using bmp2 As New Bitmap(560, 315)
            PB2.BackColor = Color.Red   ' -> .Black sonst Streifen rechts und 
                                              unten (unter PB1 schwarzes Panel)
            PB2.DrawToBitmap(bmp2, PicBoxRect)
            NextPic = New Bitmap(bmp2)
        End Using
    End Sub
 
    Private Sub BtnLR_Click(sender As Object, e As EventArgs) Handles _
      BtnLR.Click
        i = 0
        Do While i <= 560 / 10
            strW = CStr(i * 10)
            Fade("0, 0, " & strW & ", 315, 0, 0, " & strW & ", 315")
        Loop
    End Sub
 
    Private Sub BtnOU_Click(sender As Object, e As EventArgs) Handles _
      BtnOU.Click
        i = 0
        Do While i <= 315 / 10
            strH = CStr(i * 10)
            Fade("0, 0, 560, " & strH & ", 0, 0, 560, " & strH)
        Loop
        Fade("0, 0, 560, 315, 0, 0, 560, 315")
    End Sub
 
    Private Sub BtnL_Click(sender As Object, e As EventArgs) Handles BtnL.Click
        i = 0
        Do While i <= 560 / 10
            strW = CStr(i * 10)
            Fade("0, 0, " & strW & ", 315, " & _
                 CStr(560 - CInt(strW)) & ", 0, " & strW & " , 315")
        Loop
    End Sub
 
    Private Sub Fade(Str As String)
        Dim A() As String = Str.Split(",")
        i += 1
        'Threading.Thread.Sleep(100)
        Using bm As New Bitmap(PicBoxRect.Width, PicBoxRect.Height)
            Dim g2 As Graphics = Graphics.FromImage(bm)
            g2.DrawImage(ActivePic, PicBoxRect)
            g2.DrawImage(NextPic, New Rectangle(A(0), A(1), A(2), A(3)), _
                                  New Rectangle(A(4), A(5), A(6), A(7)), _
                                  GraphicsUnit.Pixel)
            Dim g As Graphics = PB1.CreateGraphics
            g.DrawImage(bm, PicBoxRect)
        End Using
    End Sub
End Class
Aber:
Der rechte bzw. untere Rand des einblendenden Bildes flackert
Gut zu erkennen, wenn [Threading.Thread.Sleep(100] aktiv

Rechts und links sind Streifen in der Hintergrundfarbe sichtbar (Breite, Höhe 1 Pixel)
Fällt nicht auf, wenn Panel hinter dem Bild mit gleicher Farbe wie Hintergrundfarbe der PictureBox

Was muss ich ändern???
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Bild auf Bild einblenden136Dikn22.06.20 11:57
Re: Bild auf Bild einblenden66Manfred X22.06.20 13:14
Bild-Datei zentriert in eine vorgegebene Fläche einpassen60Manfred X22.06.20 14:15
Re: Bild auf Bild einblenden27Dikn23.06.20 13:41
Re: Bild auf Bild einblenden46Manfred X23.06.20 16:35
Re: Bild auf Bild einblenden15Dikn25.06.20 12:26
Animation: Bild in Picturebox verschieben28Manfred X25.06.20 13:34
Re: Bild auf Bild einblenden12Dikn26.06.20 08:48
Re: Bild auf Bild einblenden17Manfred X26.06.20 11:40
Animation: Bild über Bild schieben19Manfred X26.06.20 12:26
Re: Bild auf Bild einblenden13Dikn28.06.20 13:50
Re: Bild auf Bild einblenden10Dikn28.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-2020 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