vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Bildervorschau - Bilder verkleinern - Shellandwait 
Autor: Volker Bunge
Datum: 05.01.13 02:02

Hallo Zusammen,

bin gerade dabei, ein Programm zu schreiben, in denen ich ein Verzeichnis mit Bildern durchsuchen lassen möchte und mir die Bilder als kleine Vorschaubilder anzeigen lassen möchte.

Die Pictureboxen lasse ich per Code in das Form einfügen. Anschließend werden die Bilder geladen und per Zoom automatisch verkleinert. So weit alles bestens. Die Picturebox ist 143 x 205 Pixel groß und lädt JPG-Dateien die eine Größe zwischen 490 - 902 kb groß sind (Das sind erst einmal meine Testbilder).

Baue ich Bildrahmen(z).WaitOnLoad = True ein, dann bricht er mir mit dieser Fehlermeldung ab:

System.OutOfMemoryException wurde nicht behandelt.
HResult=-2147024882
Message=Nicht genügend Arbeitsspeicher.
Source=System.Drawing
StackTrace:
bei System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData)
bei System.Windows.Forms.PictureBox.Load()
bei System.Windows.Forms.PictureBox.OnPaint(PaintEventArgs pe)
bei System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)
bei System.Windows.Forms.Control.WmPaint(Message& m)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(ApplicationContext context)
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
bei Scannprogramm.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 81.
bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()
InnerException:

Ohne diese Zeile läuft zwar das Programm ohne Fehler durch, doch von meinen 39 Bilder werden nicht alle dagestellt. Es fehlen wahl los immer mal ein paar Bilder.

Die Prozessorbelastung steigt dabei auf ca. 1,5 GB an, was auch den o. g. Abbruch erklärt.

Laden der Bilder erfolgt über Bildrahmen(z).ImageLocation = "Pfad des Bildes"

In Access 2007 habe ich das gleiche Problem. Da helfe ich mir mit einer externen Resizer.exe, die ich über eine Shellandwait Funktion aufrufe.

Leider habe ich für VB 2010 keine passende bzw. funktionierende Routine gefunden, die dass externe Programm aufruft, wartet, bis dieses fertig ist und dann weiter macht.

Auch hier im Forum finde ich keine passende Shellandwait - Funktion für VB 2010.

Habt Ich eine passende Funktion oder gibt es eine andere Möglichkeit, die Bilder Speicherschonender anzeigen zu lassen?

Ich weiss, man soll nicht so viel schreiben, aber damit man mein Problem versteht, habe ich mir gedacht, schreibe mal alles auf.

Vielen Dank

Volker
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Bildervorschau - Bilder verkleinern - Shellandwait5.325Volker Bunge05.01.13 02:02
Re: Bildervorschau - Bilder verkleinern - Shellandwait3.714Manfred X05.01.13 10:01
Re: Bildervorschau - Bilder verkleinern - Shellandwait3.572Volker Bunge05.01.13 11:56
Re: Bildervorschau - Bilder verkleinern - Shellandwait3.716Manfred X05.01.13 12:29
Re: Bildervorschau - Bilder verkleinern - Shellandwait3.558Volker Bunge05.01.13 19:31
Re: Bildervorschau - Bilder verkleinern - Shellandwait3.476Manfred X05.01.13 20:11
Re: Bildervorschau - Bilder verkleinern - Shellandwait3.611Volker Bunge05.01.13 23:16
Re: Bildervorschau - Bilder verkleinern - Shellandwait3.486Volker Bunge06.01.13 10:25
Re: Bildervorschau - Bilder verkleinern - Shellandwait3.838Manfred X06.01.13 14:38
Re: Bildervorschau - Bilder verkleinern - Shellandwait3.596Volker Bunge10.01.13 17:10
Re: Bildervorschau - Bilder verkleinern - Shellandwait3.497Volker Bunge10.01.13 20:17

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel