![]() |
Jpeg.LoadFromFile(). Bei ungültigen Bildern Fehler abfangen?
Hallo zusammen,
Ich bin gerade dabei mir ein kleines Programm zu schreiben, welches Jpeg's verkleinern kann. Das ganze läuft bis jetzt recht gut. Nur habe ich mich gestern gefragt was wohl passieren wird wenn ich eine ungültige Datei einlesen will. Also hab ich einfach ein Word Document in Dateiname.jpg umbennant.
Delphi-Quellcode:
Damit unterbricht der Compiler die Programmausführung mit der Fehlermeldung "....Jpeg Error Nr #53..." und das fertig compilierte Programm bricht an der Stelle einfach ab.
var
jpeg: TJPEGImage; begin jpeg := TJPEGImage.Create; try jpeg.LoadFromFile(FName); finally jpeg.Free; end; end; Was muss ich tun damit ich eine ungültige Datei erkennen kann und das Programm weiterläuft? Das heisst die restlichen Dateien im Ordner einliest? Vielen Dank schon im voraus. Chris |
Re: Jpeg.LoadFromFile(). Bei ungültigen Bildern Fehler abfan
Die Struktur zum Fehler abfangen heißt try except.
Delphi-Quellcode:
mfg, Björn
try
Jpeg.LoadFromFile('...'); except on Eception do begin // Exception Name verändern! Showmessage('Da lief was falsch...'); end; end; |
Re: Jpeg.LoadFromFile(). Bei ungültigen Bildern Fehler abfan
du könntest auch vor zuweisung auf 'jpeg' auf die entsprechende Kennung von JPG Bildern prüfen ...
nur wenn die korrekte kennung [FFD8] vorhanden ist macht dein programm weiter cya |
Re: Jpeg.LoadFromFile(). Bei ungültigen Bildern Fehler abfan
So gehts.
Delphi-Quellcode:
Auf korrekte Kennung prüfen möchte ich eigentlich nicht, da ich eh die Breiten und Höhen der Jpegs auslese. Wenn dabei auch gleich ungültige Dateien erkennen kann, mach ichs doch im gleichem Gang.
try
Jpeg.LoadFromFile('...'); except on EInvalidGraphic do begin ShowMessage('Ungueltige Datei'); end; Jpeg.Free; end; Dank euch beiden, Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz