// Wenn man in
einem Delphi-Programm eine Bitmap manipuliert
(speziell
//
das
Pixelformat)
und das Bild anschließend speichert, dann kann es
// anschließend von dem Programm auch ohne Probleme wieder geladen
werden.
// Nicht so von verschiedenen anderen Bildbearbeitungsprogrammen oder
von
// Programmen auf anderen Rechnern.
|
|
|
Original |
bearbeitet, gespeichert
und wieder geladen |
gleiches Bild mit
Photopaint geladen |
// Der Effekt ist in
der Regel abhängig von der Einstellung der Grafikkarte des
// jeweiligen Copmputers und dem
Bitmapinfoheader
der Bitmap.
Deshalb kann man
// beim Speichern zu einem kleinen Trick greifen:
// Getestet mit D4 unter XP
procedure speichere(bm: TBitmap; datei: string);
var
b: TBitmap;
begin
b := TBitmap.create;
b.handle := createcompatiblebitmap(GetDC(0), bm.width, bm.height);
b.canvas.draw(0, 0, bm);
b.savetofile(datei);
b.free;
end;
// zum Beispiel
procedure TForm1.Button7Click(Sender: TObject);
begin
// Image1.Picture.Bitmap wird manipuliert
// ...
speichere(Image1.Picture.Bitmap, 'c:\test.bmp');
// ...
end;
|