BabyGirl Geschrieben 18. November 2005 Teilen Geschrieben 18. November 2005 Hy, ich bins mal wieder 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
-roTekuGeL- Geschrieben 18. November 2005 Teilen Geschrieben 18. November 2005 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 :/ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
BabyGirl Geschrieben 18. November 2005 Autor Teilen Geschrieben 18. November 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
-roTekuGeL- Geschrieben 18. November 2005 Teilen Geschrieben 18. November 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
BabyGirl Geschrieben 18. November 2005 Autor Teilen Geschrieben 18. November 2005 du hat mich richtig verstanden Nur das was du eben gesagt hast, hat ja leider nicht funktioniert Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
-roTekuGeL- Geschrieben 18. November 2005 Teilen Geschrieben 18. November 2005 du hat mich richtig verstanden Nur das was du eben gesagt hast, hat ja leider nicht funktioniert muss... spätestens heute abend kann ich das mal testen und geb dann bescheid... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
BabyGirl Geschrieben 18. November 2005 Autor Teilen Geschrieben 18. November 2005 Tu das kannst dir dann aber auch bis Sonntag Zeit lassen, weil ich ja Weekend nicht zu Hause bin. Aber danke schonmal Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
BabyGirl Geschrieben 18. November 2005 Autor Teilen Geschrieben 18. November 2005 Problem gelöst 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 Jedenfalls schließ ich jetzt den Stream erst, wenn ich das Bild löschen will und es funzt wunderbar *freu* Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.