Ich habe eine Bildschau von einem Architekturentwurf erstellt.
Es werden CAD-Zeichnungen, 3D-Bilder und 3D-Videos von Außen und Innen in einer vorgegebenen Reihenfolge automatisch angezeigt.
Die Videos zeigen Wege um bzw. durch das Gebäude.
Die Bilder können in vorgegebenen unterschiedlichen Zeiten angezeigt werden.
Gleichzeitig ist eine Bildbeschreibung unterhalb der PictureBox sichtbar.
Nun möchte ich noch die Bilder unterschiedlich überblenden.
Mein letzter Stand:
Public Class Form1
Private Bmp As Bitmap
Private PB_Size As Size = New Size(560, 315)
Private PicLeft As Integer
Private PicExpan As Integer = 5
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
PbMove.Image = GetPic("C:\...\Pic1.jpg", PB_Size)
Bmp = GetPic("C:\...\Pic2.jpg", PB_Size)
StartLeft = -Bmp.Width
PicLeft = StartLeft - PicExpan
End Sub
Private Sub BtnStart_Click(sender As Object, e As EventArgs) Handles _
BtnStart.Click
PicLeft = -Bmp.Width - PicExpan
If TimerMove.Enabled = False Then
TimerMove.Enabled = True
BtnStart.Text = "Stop"
Else
TimerMove.Enabled = False
BtnStart.Text = "Start"
End If
End Sub
Private Function GetPic(FileName As String, PicSize As Size) As Bitmap
Dim BmpOut As Bitmap
Using Bmp As New Bitmap(FileName)
Dim w, h, l, t As Integer
w = CInt(Bmp.Width * PicSize.Height / Bmp.Height) + 1
h = PicSize.Height + 1
If w > PicSize.Width Then
h = CInt(Bmp.Height * PicSize.Width / Bmp.Width) + 1
w = PicSize.Width + 1
End If
l = ((PicSize.Width - w) \ 2) - 1
t = ((PicSize.Height - h) \ 2) - 1
BmpOut = New Bitmap(PicSize.Width, PicSize.Height)
Using gout As Graphics = Graphics.FromImage(BmpOut)
'gout.InterpolationMode =
' Drawing2D.InterpolationMode.HighQualityBicubic
gout.Clear(Color.Black)
gout.DrawImage(Bmp, New Rectangle(l, t, w, h), New Rectangle(0, _
0, Bmp.Width, Bmp.Height), GraphicsUnit.Pixel)
End Using
End Using
Return BmpOut
End Function
Private Sub PbMove_Paint(sender As Object, e As PaintEventArgs) Handles _
PbMove.Paint
Dim Rect_Paint As New Rectangle(PicLeft, 0, Bmp.Width, Bmp.Height)
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 _
TimerMove.Tick
If PicLeft >= 0 Then
TimerMove.Enabled = False
PicLeft = 0
PbMove.Invalidate()
BtnStart.Text = "Start"
Else
PicLeft += PicExpan
PbMove.Invalidate()
End If
End Sub
End Class |