![]() |
LoadFromFile Stream-Lesefehler bei > 63*63px ? ...wie jet
Aaalso...
ich bin gerade dabei, ein kleines Programm zu schreiben, mit Hilfe dessen man schnell ein Bild mit beliebiger Komrimierungsrate als jpeg speichern kann. So weit, so gut. Wenn ich allerdings ein Bild lade das 64*64 Pixel oder größer ist, dann bekomme ich einen Stream-Lesefehler. Und das Ganze mit folgendem Quellcode:
Delphi-Quellcode:
Auch bei meinen älteren Programmen wie z.B. einem Programm zum Umwandeln von Bildern in Icons tritt dieses Problem auf, dort habe ich ebenfalls LoadFromFile() verwendet.
procedure TForm1.BitBtn_loadimageClick(Sender: TObject);
begin with TOpenPictureDialog.Create(form1) do try filter := 'Bitmaps(*.bmp)|*.bmp|Alle Dateien(*.*)|*'; Options := [ofHideReadOnly, ofPathMustExist, ofFileMustExist, ofEnableSizing]; if Execute then begin form1.img_original.Picture.LoadFromFile(FileName); und so weiter... Habe es dann mit anderen Konstellationen probiert, und immer kommt ein Stream-Lesefehler bei Bildern über 63*63 Pixeln. Die Frage ist nur: was soll ich da machen? Habe ich da etwa einen Fehler gemacht den ich nicht sehe? Ich habe bei Suchen jedenfalls nichts dazu gefunden und hoffe jetzt auf Hilfe. Bin mir nichtmal sicher, ob ich jetzt das richtige Forum dafür erwischt habe :wiejetzt: |
Re: LoadFromFile Stream-Lesefehler bei > 63*63px ? ...wie
warum das rad neu erfinden?
![]() :mrgreen: Du kannst auch gerne n bisschen Quellcode haben. Bei deinem Problem muss ich sagen: Ohne mehr Quelltext kommt man da nicht weiter. Interessant wäre z.B. was du lädst. wobei BMPs eigentlich keine Probleme machen dürften. Hast du irgendwelche Komponenten dabei? ![]() ![]() Ansonsten: einfach mal ein neues Projekt aufmachen, mit einem Image und einem Opendialog. Und den ruhig mal auf der Form platzieren, tut nicht weh ;) Und dann eben sehen, ob das nochmal auftritt. was es ja offenbar schon getan hat, bei dem Iconprog. ehrlich gesagt bin ich ratlos, was so einen fehler auslösen könnte.... |
Re: LoadFromFile Stream-Lesefehler bei > 63*63px ? ...wie
Zitat:
wenn du Form1 nimmst, legst du dich explizit auf diese eine Objekt (d.h. diese eine Variable mit genau diesem Namen) fest, mit Self wird immer das aufrufende Objekt angesprochen. edit: und wie schon gesagt, den OpenDialog kannst du auch von Delphi automatsich erstellen lassen, der kümemrt sich dann auch ums freigeben etc. (hast du da überhaupt dran gedacht?) |
Re: LoadFromFile Stream-Lesefehler bei > 63*63px ? ...wie
Zitat:
Zitat:
Zitat:
Hmm.. mir fällt gerade ein, dass ich das habe seit ich bei der Installation von Delphi2005 PE nur [x]Delphi für Win32 ausgewählt habe... kann doch nicht sein, oder :shock: Darf ich präsentieren, der gesamte Quellcode dieser Prozedur:
Delphi-Quellcode:
procedure TForm1.BitBtn_loadimageClick(Sender: TObject);
begin with TOpenPictureDialog.Create(self) do try filter := 'Bitmaps(*.bmp)|*.bmp|Alle Dateien(*.*)|*'; Options := [ofHideReadOnly, ofPathMustExist, ofFileMustExist, ofEnableSizing]; if Execute then begin img_original.Picture.Bitmap.LoadFromFile(FileName); //img_original.Stretch := ((img_original.Picture.Width > img_original.Width) or (img_original.Picture.Height > img_original.Height)); {Testweise auskommentiert} //compressnewimage(form1.TrackBar_compressquality.Position); {Testweise auskommentiert} end; finally Free; end; end; //edit: Quellcode der gesamten Prozedur angehängt |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 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