Hi,
ich versuche gerade ein Programm zu schreiben mit dem ich "Materialien" beliebigen Formats in eine Datei schreiben kann.
Das heißt egal ob PNG,BMP,JPG. Mit BMP und PNG funktioniert alles wunderbar.
In die Datei schreiben ist kein Problem.
Nur bei JPG "hängt" sich das Programm auf:
Delphi-Quellcode:
while temp = '@Material' do
begin
material := TMaterial.Create;
material.picture := TPicture.Create;
filestream.Read(material.fileext,sizeof(filestring));
material.fileext := lowercase(material.fileext);
if (material.fileext = 'jpg') or (material.fileext = 'jpeg') then
begin
jpg := TJpegImage.Create;
jpg.LoadFromStream(filestream); //<--Hier gibt es Probleme
material.picture.Graphic := jpg;
end;
if (material.fileext = 'bmp') then
begin
bmp := TBitmap.Create;
bmp.LoadFromStream(filestream);
material.picture.Bitmap := bmp;
end;
if (material.fileext = 'png') then
begin
png := TPNGObject.Create;
png.LoadFromStream(filestream);
material.picture.Graphic := png;
end;
material.picture.Graphic := png;
filestream.Read(temp,sizeof(filestring));
fmaterials.Add(material);
end;
Die Sympthome sind:
a) Den ersten Durchlauf gibt es auch mit JPEG keine Probleme.
b) beim zweiten Durchlauf spielt alles irgendwie verrückt. Filstream.Position rückt nicht weiter.
Ich hoffe ihr könnt mir helfen.
Kennt jemand vielleicht eine alternative zum JPEG loader aus der jpeg.pas?
Igel457