Bildskalierung hat geklappt — Bild wird vom VideoFileWriter nicht akzeptiert

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Bartosz.

    Bildskalierung hat geklappt — Bild wird vom VideoFileWriter nicht akzeptiert

    Moin,

    ich hoffe, ihr könnt mir nochmal helfen.

    Mein Testprogramm nimmt ein Bild bmp. Der Pfad kommt aus einer List(of String) mit dem Dateinamen. Dann wird dieses Bild in einer separaten Funktion verkleinert, auf 1920x1080. Ein Bild wird zurückgegeben. Dieses ist das bmp2. Dieses wird vom VideoFileWriter nicht akzeptiert.
    Woran kann das liegen? Ich weiß, dass die Bildverkleinerungsfunktion gut funktioniert. Ist von hier, nur leicht verändert, weil die Skalierung falsch war. Das Bild wird in einer Picturebox testhalber ausgegeben (ist also nicht Nothing oder so).
    Der Fehler lautet ungültiger Parameter.

    CreateVideo Sub

    VB.NET-Quellcode

    1. For i As Integer = 0 To Liste.Count - 1 Step 1
    2. Using bmp As New Bitmap(Liste(i))
    3. Using bmp2 As Bitmap = Bild_skalieren(bmp)
    4. Try
    5. writer.WriteVideoFrame(bmp2) 'HIER
    6. Catch ex2 As System.ArgumentException
    7. End Try
    8. End Using
    9. End Using
    10. Application.DoEvents()
    11. Next


    VB.NET-Quellcode

    1. Public Function Bild_skalieren(ByVal Input As Bitmap) As Bitmap
    2. Dim Scale_X As Double = 1920 / Input.Size.Width
    3. Dim Scale_Y As Double = 1080 / Input.Size.Height
    4. Dim Size_X As Integer = CInt(Math.Round(Input.Size.Width * Scale_X, 0))
    5. Dim Size_Y As Integer = CInt(Math.Round(Input.Size.Height * Scale_Y, 0))
    6. Dim bitmap1 As New Bitmap(Size_X, Size_Y, Imaging.PixelFormat.Format24bppRgb) '24bppRgb ist wichtig
    7. Using Gr As Graphics = Graphics.FromImage(bitmap1)
    8. Gr.DrawImage(Input, 0, 0, Size_X, Size_Y)
    9. End Using
    10. PictureBox1.Image = bitmap1 'test
    11. Return bitmap1
    12. End Function
    Bilder
    • Fehler - Kopie.jpg

      87,47 kB, 912×344, 49 mal angesehen
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.
    erledit. Codefehler. Entschuldigt bitte

    VB.NET-Quellcode

    1. Using bmp2 As Bitmap = New Bitmap(Bild_skalieren(bmp))
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.