Bitmap Array füllen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

    Bitmap Array füllen

    Hallo

    Ich möchte ein control machen, bei dem mehrere bilder aus einem ordner ausgelesen werden. diese werden dann in eine bitmap-array geschpeichert, dabei bekomme ich eine nullreferenceexeption... ich habe mittels new und dem pfad zum bild ein neues bitmap erstellt und dem array zugewiesen.

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class UserControl1
    3. Dim picsbmp() As Bitmap
    4. Dim x As Integer = 0
    5. ...
    6. Private Sub ExtractPics(ByVal path As String)
    7. Dim files() As String
    8. files = Directory.GetFiles(path) 'Dateiepfade im Ordner auslesen und in files() speichern
    9. x = 0
    10. For i As Integer = 0 To UBound(files)
    11. If files(i).EndsWith(".png") Then
    12. x += 1
    13. picsbmp(x - 1) = New Bitmap(files(i)) 'hier kommt der fehler
    14. End If
    15. If files(i).EndsWith(".bmp") Then
    16. x += 1
    17. picsbmp(x - 1) = New Bitmap(files(i)) 'hier kommt der fehler
    18. End If
    19. If files(i).EndsWith(".jpg") Then
    20. x += 1
    21. picsbmp(x - 1) = New Bitmap(files(i)) 'hier kommt der fehler
    22. End If
    23. Next

    ich habe keine ahnung warum der fehler kommt, kann mir jemand sagen wie mans richtig macht?

    danke im voraus :thumbsup:

    nicu

    OS: Linux Peppermint & Windows 7
    Processor: AMD Phenom II X6 1055T @ 3.5 GHz
    RAM: 8 GB Kingston ValueRAM
    GFX: NVIDIA GeForce 210
    Interessant...
    Mir sind da ein paar Sachen ein-/aufgefallen:

    1. Der Konstruktor einer Bitmap beinhaltet eigentlich deren Größe, oder? Warum nimmst du nicht Image.FromFile(Path)?
    2. Warum nutzt du eine Zähler-gesteuerte For-Schleife und keine Range-/Index-gesteuerte?

    Dim pPicIndex As Integer = 0 'Integer, die den zu beschreibenden Index angibt
    For Each File In Directory.GetFiles(Path) 'Für jede Datei im Ordner...
    Dim pFileInfo As New System.IO.FileInfo(File) 'Neue Datei-Info erstellen
    Select Case pFileInfo.Extension 'Tritt der Fall auf...
    Case ".png"
    picsbmp(pPicIndex) = Image.FromFile(File)
    'Weitere Cases...
    End Select
    pPicIndex+=1 'Ziel-Index erhöhen
    Next
    BTW.: Hab nu erst gelesen, wo genau der Fehler kommt O.o Naja, kann ja nicht schaden...

    MfG,
    X-Zat / Momo
    vielen dank!
    werde mir das morgen nach der schule noch ganau anschauen und ausprobieren

    OS: Linux Peppermint & Windows 7
    Processor: AMD Phenom II X6 1055T @ 3.5 GHz
    RAM: 8 GB Kingston ValueRAM
    GFX: NVIDIA GeForce 210