PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Delphi] Problem mit Laden von Bildern



Crash-Override
12.07.2004, 00:26
So, ich programmiere grade ein Grafikprogramm. Es kann verschiedene Formate lesen und schreiben (darunter png, psp, dib, jpg, bmp [...]) dafür verwende ich GrafikEX (ne Grafik Unit) alles funzt prima: Ich kann von anderen Grafikprogrammen erzeugte Dateien lesen und die Dateien auch selbst speichern und andere Programme können meine Dateien lesen, aber ich kann die von mir selbst erzeigten Dateien nicht lesen.. -.-

Also ich versteh das ganze nicht. Hier mein Code zum laden von Bildern:



procedure TfrmMain.Oeffnen1Click(Sender: TObject);
var
Fenster: TfrmPicView;
begin
if dlgOeffnen.Execute then
begin
Fenster := TfrmPicView.Create(Application);
Fenster.mimgBild.Picture.LoadFromFile(dlgOeffnen.Filename);
Fenster.Width := Fenster.mimgBild.Picture.Graphic.Width + 18;
Fenster.Height := Fenster.mimgBild.Picture.Graphic.Height + 45;
Fenster.Caption := dlgOeffnen.FileName;
end;
end;


Es wird das Formular frmPicView erzeugt und das geöffnete Bild zugewiesen.

Mein Code zum speichern von Dateien:



procedure TfrmMain.Sichern1Click(Sender: TObject);
var
Fenster: TfrmPicView;
begin
if SavePictureDialog1.Execute then
Begin
if ActiveMDIChild <> nil then
begin
Fenster := ActiveMDIChild as TfrmPicView;
case SavePictureDialog1.FilterIndex of
1:Fenster.imgBild.Picture.SaveToFile(SavePictureDialog1.FileName + '.dib');
2:Fenster.imgBild.Picture.SaveToFile(SavePictureDialog1.FileName + '.jpg');
3:Fenster.imgBild.Picture.SaveToFile(SavePictureDialog1.FileName + '.jpeg');
4:Fenster.imgBild.Picture.SaveToFile(SavePictureDialog1.FileName + '.bmp');
5:Fenster.imgBild.Picture.SaveToFile(SavePictureDialog1.FileName + '.ico');
6:Fenster.imgBild.Picture.SaveToFile(SavePictureDialog1.FileName + '.emf');
7:Fenster.imgBild.Picture.SaveToFile(SavePictureDialog1.FileName + '.wmf');
8:Fenster.imgBild.Picture.SaveToFile(SavePictureDialog1.FileName + '.png');
9:Fenster.imgBild.Picture.SaveToFile(SavePictureDialog1.FileName + '.psp');
end;
end;
end;
end;


Ich versteh net warum's net geht....

Wenn ihr's selbst sehen wollt:


http://crashoverride22.funpic.de/Files/Project1.exe (http://crashoverride22.funpic.de/Files/Project1.exe)

MuadDib
12.07.2004, 03:26
Ganz einfach: Du speicherst die Bilder nur unter anderem Dateinamen und unter anderer Endung, allerdings bleibt das Format exakt das gleiche als das Geladene...

Als Beispiel: Lade ich also nun eine jpg-Datei und speichere sie als bmp, will dein Programm das Bild auch als bmp öffnen, obwohls ein jpg ist... speichere ich als jpg Datei, läufts ohne Probleme.

EDIT: Andere Programme können natürlich deine Daten lesen, da sie ja nicht auf die Endung schauen (wie die Grafik Unit anscheinend...), sondern auf das Format indem sie den Code analysieren.

Crash-Override
12.07.2004, 21:40
Anscheinend scheint das zu stimmen, da wenn ich ein und das selbe Bild mit Paint und mit meinem Programm in jpeg umwandle unterscheiden sie sich in Größe und Format (im Editor geöffnet). Mhm ich versuch das ganze mal hinzubiegen...