Zum Inhalt springen

[vb.net] Probleme mit Gifs/Picturebox


BabyGirl

Empfohlene Beiträge

Hy,

ich bins mal wieder :D

Mit folgendem Code lade ich ein Bild in eine Picturebox:

Dim bmp As Bitmap

Dim fs As System.IO.FileStream

fs = New IO.FileStream(pfad, IO.FileMode.Open, IO.FileAccess.Read)

bmp = New Bitmap(fs)

fs.Close()

picturebox.Image = bmp

Das funktioniert soweit auch, aber sobald er ein animiertes Gif laden soll, macht das Programm Probleme. Er lädt das Bild, zeigt es an (ohne Animation) und bricht das Programm mit folgender Fehlermeldung ab:

"Eine nicht behandelte Ausnahme des Typs 'System.Runtime.InteropServices.ExternalException' ist in system.windows.forms.dll aufgetreten.

Zusätzliche Informationen: In GDI+ ist ein allgemeiner Fehler aufgetreten."

Ich hab schon gegoogelt, aber ich finde leider nix :(

Wenn ich das Bild über "picturebox.Image.FromFile(pfad)" gibt es keine Probleme, aber so kann ich das Bild nicht laden, weil ich es dann nicht mehr löschen kann (über eine 2. Form, glaubt mir ich hab einiges probiert, sogar mein Ausbilder hat mitgeholfen, aber es ging alles nicht und mit dem System.IO.FileStream funzt es wunderbar, nur das ich hier jetzt Probleme mit animierten Gifs habe)

Ist es möglich, das der obere Code einfach mal keine animierten Gifs beherrscht?

Hoffe ihr könnt mir helfen

Mfg

BabyGirl

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich das Bild über "picturebox.Image.FromFile(pfad)" gibt es keine Probleme, aber so kann ich das Bild nicht laden, weil ich es dann nicht mehr löschen kann

ich glaub dir ja dass du es versucht hast, aber irgendwie muss es doch gehn...

was hast du denn alles versucht?

im notfall das steuerelemnt irgendwie neu laden oder so...

hab leider kein .NET zur hand, sonst würd ichs mal testen :/

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich bin grad dabei nen Bildbetrachter für die Schule zu programmieren und da hab ich ne Vorschau wo lauter Pictureboxen sind mit allen Bildern.

Wenn ich dann auf ein Bild klicke wird es auf der selben Form(1.Form) groß angezeigt.

Über ein Menü geh ich auf Bearbeiten und es öffnet sich eine neue Form(2.Form).

Dort ist das Bild wieder angezeigt und ich kann es bearbeiten und löschen.

Aber um es löschen zu können, muss das Bild in der Picturebox in der 1.Form leer machen. Wenn ich aber über die 2. Form auf die 1. zugreifen wollte, war für ihn die Picturebox in der 1. Form nothing (mein Ausbilder meinte wir sollten es mit ByRef und mit bestimmten Events probieren, aber das ging alles nicht, die Box war immer noch nothing egal was wir anstellten). Da ich aber die Box nicht leeren konnte (in der 2. Form war das kein Problem), konnte ich das Bild nicht löschen da immer noch ein Prozess auf die Datei zugriff (= Picturebox der 1.Form).

Also hab ich es mit diesem Filestream probiert und damit ging es wunderbar. Da störte es ihm auch nich das in der 1. Form das Bild noch in der Picturebox war. Also alles super.

Bis auf die Tatsache mit den animierten Gifs :(

Wenn ich auf das Bild in der Vorschau klicke dann wird es mir groß angezeigt und das Programm bricht ab.

Hoffe, dass dir das ein bissl weiter hilft, weil den anderen Code hab ich leider nicht mehr *schäm* da das ja mit den Filestream wunderbar geklappt hatte, aber hätt ich das gewusst, dann hätt ich ihn aufgehoben :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

also ich steig durch deinen text nicht so ganz durch... aber um von der 2. form auf die 1. zu kommen bzw. das bild zu bekommen musst du nur den pfad als globale variable deklarieren...

dann hast du den pfad in der 1. und der 2. form... und wenn du die 2. lädst schmeißt du das bild aus der 1. form raus... also picturebox = nothing oder so...

aber vielleicht hab ich dich auch falsch verstanden :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Problem gelöst :D

Wenn das Bild ein animiertes Gif ist, dann darf der Stream nicht frühzeitig geschlossen werden ("Der Stream muss für die Lebensdauer des Bitmap-Objekts geöffnet bleiben.")

Wahrscheinlich hat dadurch die GDI Probleme damit :rolleyes:

Jedenfalls schließ ich jetzt den Stream erst, wenn ich das Bild löschen will und es funzt wunderbar *freu*

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...