![]() |
jpeg-Fehler #36 bei sehr großen Dateien
Hallo,
ich habe folgendes Problem: Ich möchte gerne eine Bitmap in ein JPG-Bild umwandeln und es dann als Datei auf meiner Festplatte speichern. Dafür verwende ich folgende Prozedur:
Delphi-Quellcode:
Das klappt wunderbar, wenn die übergebene Bitmap nicht sehr groß ist. 1024x768 zum Beispiel wird anstandslos gespeichert. Wenn ich aber größere Bitmaps auf diese Weise als JPEG-Datei speichern will (zum Beispiel 984x1190), gibt das Programm den JPEG-Fehler #36 aus. Das ist: "output file write error - out of disk space?"
procedure StoreBitmapAsJPEG (bm: graphics.TBitmap; jpname: string;
Kompressionsqualitaet: Integer = 100); var jp: TJpegImage; begin jp:= TJpegImage.Create; try with jp do begin CompressionQuality:=Kompressionsqualitaet; Assign(bm); (* Das folgende führt zu Fehlern bei übergroßen Bildern. *) SaveToFile(jpname) end; (* with *) finally jp.Free; end; end; Ich versichere hoch und heilig: Auf meiner Festplatte ist noch massig Platz (8 GB). Außerdem kann ich ohne weiteres die Bitmap als BMP-Datei abspeichern, und die ist sicherlich größer als die JPEG-Datei. Was mache ich falsch? |
Re: jpeg-Fehler #36 bei sehr großen Dateien
Evtl. bist du an einer 2/4 GB-Grenze und die JPEG-Implementierung in Delphi verwendet nur Win32-API-Aufrufe mit 32-Bit-Parametern.
Beleg mal einfach ein paar MB und probiere es nochmal. |
Re: jpeg-Fehler #36 bei sehr großen Dateien
Zitat:
Ich verwende übrigens Delphi 5 Standard. |
Re: jpeg-Fehler #36 bei sehr großen Dateien
Ich habe inzwischen herausgefunden, daß die Unit jpeg.pas (jpeg.dcu), die mit Delphi 5 ausgeliefert worden ist, tatsächlich einen Programmierfehler enthält. Mit der Unit jpgimg.pas klappt alles hervorragend.
Falls es jemanden gibt, der das gleiche Problem hat: Die Unit findet man auf ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 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