Panorama

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von tt-Studios.

    ehm... wenn ich dich richtig verstehe willst du ein panorama bild als Backgroundimage ?

    das geht so:

    -1 du klickst auch deine WindowsForm in welche du das bild haben willst

    -2 du sichst bei dem punkt "Eigenschaften" unten rechts nach BackgroundImage (unter BackColor)

    -3 du wählst dein bild aus (ist nicht schwer XD)

    -4 jetzt wählst du den punkt "BackgroundimageLayout" aus und dort wählst du anstatt "tile" den punkt "Stretch" aus. somit kannst du dein bild zu einem panorama stretchen :D wenn das bild schon ein panorama ist dann wählst du da einfach Center aus. damit wird das bild proportional in die mitte der Form gemalt :)

    wenn du was ganz anderes meinst sry und ignorier mein beitrag ;D
    Es gibt so ein Ding, AVI in PictureBox.
    Vieleicht versuchst du das mal.
    Sollte dann auch in einem Panel gehen.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. So kann man AVI Filme in einer PictureBox abspielen lassen.
    2. Code:
    3. Imports System.Runtime
    4. Imports System.Runtime.InteropServices
    5. Imports Microsoft.VisualBasic
    6. Public Class Form1
    7. Public filename As String
    8. Public Breite As Integer
    9. Public Hohe As Integer
    10. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    11. filename = "c:\filme\FILEMOVE.avi"
    12. Dim AVIInfo As New AVI(filename)
    13. With AVIInfo
    14. Breite = .Width
    15. Hohe = .Height
    16. ' MsgBox("Höhe x Breite: " & CStr(.Height) & " x " & CStr(.Width) & vbCrLf & _
    17. ' "Spieldauer: " & CStr(.Length) & " Sekunden" & vbCrLf & _
    18. ' "mm:ss: " & .FormatLength() & vbCrLf & _
    19. ' "hh:mm:ss: " & .FormatLength("HH:mm:ss"))
    20. End With
    21. End Sub
    22. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    23. filename = "C:\filme\DOWNLOAD.AVI"
    24. ' filename = "c:\filme\FILEMOVE.avi"
    25. Dim AVIInfo As New AVI(filename)
    26. With AVIInfo
    27. Breite = .Width
    28. Hohe = .Height
    29. MsgBox("Höhe x Breite: " & CStr(.Height) & " x " & CStr(.Width) & vbCrLf & _
    30. "Spieldauer: " & CStr(.Length) & " Sekunden" & vbCrLf & _
    31. "mm:ss: " & .FormatLength() & vbCrLf & _
    32. "hh:mm:ss: " & .FormatLength("HH:mm:ss"))
    33. End With
    34. End Sub
    35. Private Declare Function mciSendString Lib "winmm.dll" _
    36. Alias "mciSendStringA" ( _
    37. ByVal lpstrCommand As String, _
    38. ByVal lpstrReturnString As String, _
    39. ByVal uReturnLength As Long, _
    40. ByVal hwndCallback As Long) As Long
    41. Private Declare Function GetShortPathName Lib "kernel32" _
    42. Alias "GetShortPathNameA" ( _
    43. ByVal lpszLongPath As String, _
    44. ByVal lpszShortPath As String, _
    45. ByVal cchBuffer As Long) As Long
    46. ' AVI-File ”ffnen
    47. Private Sub AVI_Open(ByVal sFile As String)
    48. Dim sBuffer As String = Nothing
    49. sBuffer = sBuffer * 256
    50. Dim nResult As Long
    51. ' DOS-Namen ermitteln (8.3-Format)
    52. nResult = GetShortPathName(sFile, sBuffer, Len(sBuffer))
    53. ' sFile = Microsoft.VisualBasic.Left(sBuffer, nResult)
    54. ' AVI öffnen
    55. ' öffnet ein Gerät und eine Multimedia-Datei
    56. mciSendString("open " & sFile & " type avivideo" & " alias myAVI", 0, 0, 0)
    57. ' Anzeige in der PictureBox
    58. mciSendString("window myAVI handle " & CStr(PictureBox1.Handle), 0, 0, 0)
    59. End Sub
    60. ' AVI in PictureBox abspielen
    61. Private Sub AVI_Play()
    62. mciSendString("play myAVI from 0", 0, 0, 0)
    63. End Sub
    64. ' Abspielvorgang stoppen
    65. Private Sub AVI_Stop()
    66. mciSendString("close myAVI", 0, 0, 0)
    67. End Sub
    68. ' MCI Schließen
    69. Private Function AVI_Close()
    70. mciSendString("close myAVI", 0, 0, 0)
    71. End Function
    72. ' Abspielvorgang beenden und MCI schlieáen
    73. Private Sub cmdStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStop.Click
    74. AVI_Stop()
    75. AVI_Close()
    76. End Sub
    77. ' AVI öffnen und abspielen
    78. Private Sub cmdStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart.Click
    79. 'Dim sFile As String
    80. ' Dateiname
    81. 'sFile = filename
    82. ' MCI ”ffnen
    83. Me.Width = Breite + 80
    84. Me.Height = Hohe + 30
    85. PictureBox1.Width = Breite
    86. PictureBox1.Height = Hohe
    87. AVI_Open(filename)
    88. ' Abspielvorgang starten
    89. AVI_Play()
    90. End Sub
    91. End Class
    92. Public Class AVI
    93. ' benötigte API-Deklarationen
    94. Private Declare Auto Function AVIFileOpen Lib "avifil32" ( _
    95. ByRef ppfile As Integer, _
    96. ByVal szFile As String, _
    97. ByVal mode As Integer, _
    98. ByVal pclsidHandler As Integer) As Integer
    99. Private Declare Auto Function AVIFileRelease Lib "avifil32" ( _
    100. ByVal pfile As Integer) As Integer
    101. Private Declare Auto Function AVIFileInfo Lib "avifil32" ( _
    102. ByVal pfile As Integer, _
    103. ByRef pfi As AVIInfo, _
    104. ByVal lSize As Integer) As Integer
    105. Private Declare Auto Sub AVIFileInit Lib "avifil32" ()
    106. Private Declare Auto Sub AVIFileExit Lib "avifil32" ()
    107. ' AVI Info-Struktur
    108. <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _
    109. Private Structure AVIInfo
    110. Public dwMaxBytesPerSec As Integer
    111. Public dwFlags As Integer
    112. Public dwCaps As Integer
    113. Public dwStreams As Integer
    114. Public dwSuggestedBufferSize As Integer
    115. Public dwWidth As Integer
    116. Public dwHeight As Integer
    117. Public dwScale As Integer
    118. Public dwRate As Integer
    119. Public dwLength As Integer
    120. Public dwEditCount As Integer
    121. <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=64)> _
    122. Public szFileType As String
    123. End Structure
    124. ' Eigenschaften
    125. Private _Length As Integer
    126. Private _Width As Integer
    127. Private _Height As Integer
    128. ''' <summary>
    129. ''' Erstellt eine neue Instanz der Klasse und liest die AVI-Informationen
    130. ''' der übergebenenen AVI-Datei aus.
    131. ''' </summary>
    132. ''' <param name="Filename">Dateiname des AVI-Files</param>
    133. Public Sub New(ByVal Filename As String)
    134. Dim hFile As Integer
    135. Dim AviInfo As New AVIInfo
    136. ' Fehlerbehandlung aktivieren
    137. Try
    138. ' Initialisieren
    139. AVIFileInit()
    140. ' AVI öffnen (Handle erstellen)
    141. If AVIFileOpen(hFile, Filename, &H20, 0&) = 0 Then
    142. ' Infos lesen
    143. If AVIFileInfo(hFile, AviInfo, Marshal.SizeOf(AviInfo)) = 0 Then
    144. With AviInfo
    145. _Width = .dwWidth
    146. _Height = .dwHeight
    147. _Length = .dwLength / .dwRate * .dwScale
    148. End With
    149. End If
    150. End If
    151. Catch ex As Exception
    152. Finally
    153. ' Beenden
    154. AVIFileExit()
    155. If hFile <> 0 Then AVIFileRelease(hFile)
    156. End Try
    157. End Sub
    158. ''' <summary>
    159. ''' Gibt die Breite der animierten Bildsequenz zurück.
    160. ''' </summary>
    161. Public ReadOnly Property Width() As Integer
    162. Get
    163. Return _Width
    164. End Get
    165. End Property
    166. ''' <summary>
    167. ''' Gibt die Höhe der animierten Bildsequenz zurück.
    168. ''' </summary>
    169. Public ReadOnly Property Height() As Integer
    170. Get
    171. Return _Height
    172. End Get
    173. End Property
    174. ''' <summary>
    175. ''' Gibt die Spieldauer der animierten Bildsequenz in Sekunden zurück.
    176. ''' </summary>
    177. Public ReadOnly Property Length() As Integer
    178. Get
    179. Return _Length
    180. End Get
    181. End Property
    182. ''' <summary>
    183. ''' Gibt die Spieldauer im Format mm:ss zurück.
    184. ''' </summary>
    185. Public ReadOnly Property FormatLength() As String
    186. Get
    187. Return CDate("00:00:00").AddSeconds(_Length).ToString("mm:ss")
    188. End Get
    189. End Property
    190. ''' <summary>
    191. ''' Gibt die Spieldauer im angegebenen Format zurück.
    192. ''' </summary>
    193. ''' <param name="Format">Formatierungsstring, z.B. HH:mm:ss</param>
    194. Public ReadOnly Property FormatLength(ByVal Format As String) As String
    195. Get
    196. Return CDate("00:00:00").AddSeconds(_Length).ToString(Format)
    197. End Get
    198. End Property
    199. End Class
    200. Der Programm Code ist aus dem Netz. Ich habe ihn getestet und er funktioniert.