Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi LoadFromFile Stream-Lesefehler bei > 63*63px ? ...wie jetzt? (https://www.delphipraxis.net/51112-loadfromfile-stream-lesefehler-bei-63%2A63px-wie-jetzt.html)

integer 6. Aug 2005 01:36


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:
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...
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.

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:

DGL-luke 6. Aug 2005 09:46

Re: LoadFromFile Stream-Lesefehler bei > 63*63px ? ...wie
 
warum das rad neu erfinden?

http://www.delphipraxis.net/internal...ct.php?t=55084

: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? Bei Google suchenGraphicEx und Bei Google suchenGraphics32 helfen einem sehr, Graphicex bei den Formaten und GR32 bei der Darstellung.

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....

BlackJack 6. Aug 2005 10:59

Re: LoadFromFile Stream-Lesefehler bei > 63*63px ? ...wie
 
Zitat:

Zitat von integer
Delphi-Quellcode:
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...

tut zwar nichts zur sache, aber benutz bitte mal in dem Code "Self" statt "Form1".
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?)

integer 6. Aug 2005 11:01

Re: LoadFromFile Stream-Lesefehler bei > 63*63px ? ...wie
 
Zitat:

Zitat von DGL-luke

Um endlich mal den Umgang mit Grafiken kennenzulernen :stupid:

Zitat:

Zitat von DGL-luke
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?

Keine Komponenten, kaum zusätzlier Quellcode...

Zitat:

Zitat von DGL-luke
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....

Habe ich gemacht, selber Fehler. Bin eigentlich auch ratlos.
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 09:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz