Einzelnen Beitrag anzeigen

Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: GR32 Bilder erhellen/verdunkeln?

  Alt 14. Jul 2006, 13:59
Bildbearbeitung ist eigentlich ganz einfach - Beim TBitmap32 greifst du über die Pixel-Eigenschaft auf die Farbe jedes einzelnen Pixels zu. Du brauchst dann nur geeignete Algorithmen:

Delphi-Quellcode:
function Gamma(bitmap: TBitmap32; factor: single): TBitmap32;
var i,k: Integer;
    c: TColor;
begin
  Result := TBitmap32.Create;
  Result.assign(bitmap);
  for i := 0 to Result.Width -1 do
    for k := 0 to Result.Height -1 do
      begin
        c := Result.Pixel[i,k];
        Result.Pixel[i,k] := rgb(Round(GetRValue(c) * factor), Round(GetGValue(c) * factor), Round(GetBValue(c) * factor));
      end;
end;
Die tatsächliche Berechnung - und das neue Zusammenbauen der Farbe - kann man sicher noch gehörig optimieren, unter anderem durch direkten Speicherzugriff, wo man mit assembler arbeiten kann.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat