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