Einzelnen Beitrag anzeigen

Cyberstorm

Registriert seit: 23. Okt 2003
159 Beiträge
 
Delphi 2010 Architect
 
#14

Re: Ein Bild mit einer Farbe multiplizieren?

  Alt 24. Jan 2008, 11:04
hmm also ersteinmal machen beide funktionen von euch (omata & corpsman) das selbe aber noch nicht ganz, was ich will .
zumindest wird bei 100% nicht komplett überblendet aber das ergebnis ist nicht wie ich will (siehe bilder).

habe dein programm mal gekürzt und das einlesen der komponente überlassen:
die scroll boxen haben als onchange ereignis FormCreate...

Delphi-Quellcode:
procedure TfrmMain.FormCreate(Sender: TObject);
begin
  Self.DoubleBuffered:=true;
  Shape.Brush.Color:=RGB(SbRot.Position, SbGruen.Position, SbBlau.Position);
  Image.Picture.LoadFromFile('ori.bmp');
  Calculate;;
end;

procedure TfrmMain.Calculate;
var
  Prozent: Real;
  x, y: Integer;
  P: PRGB;
begin
  Prozent:=SbProzent.Position / 100;
   for y:=0 to Image.Picture.Height-1 do
    begin
      P:=Image.Picture.Bitmap.ScanLine[y];
       for x:=0 to Image.Picture.Width-1 do
        begin
          p.Blue:=min(255, round(((p.Blue / 255) + ((SbBlau.Position / 255) * Prozent)) * 255));
          p.Green:=min(255, round(((p.Green / 255) + ((SbGruen.Position / 255) * Prozent)) * 255));
          p.Red:=min(255, round(((p.Red / 255) + ((SbRot.Position / 255) * Prozent)) * 255));
          Inc(p);
        end;
    end;
end;
damit kommen nun folgende ergebnisse bei 100% grün (0% rot und blau) und 50%, danach 100% faktor:

programm grün:255 prozent: 50%
http://cyberstorm.hopto.org/prog_half.jpg

programm grün:255 prozent: 100%
http://cyberstorm.hopto.org/prog_full.jpg

photoshop grün:255 prozent: 50%
http://cyberstorm.hopto.org/half.jpg

photoshop grün:255 prozent: 100%
http://cyberstorm.hopto.org/full.jpg
  Mit Zitat antworten Zitat