title image


Smiley Re: wie unterschied zwischen 2 farben berechnen???
Vielleicht so:



procedure anpassen(Bild: TBitmap; Grundfarbe: TColor; Prozent: single);

var

x, y, b3: integer;

p: PBytearray;

r, g, b: Byte;

w: word;

begin

if (Prozent = 0) or (Bild.width = 0) or (Bild.height = 0) then exit;

if Prozent > 100 then Prozent := 100;

bild.pixelformat := pf24bit;

Grundfarbe := ColorToRGB(Grundfarbe);

r := getrvalue(Grundfarbe);

g := getgvalue(Grundfarbe);

b := getbvalue(Grundfarbe);

w := r + g + b;

b3 := bild.width * 3;

for y := 0 to bild.height - 1 do begin

p := bild.scanline[y];

x := 0;

while x < b3 do begin

if (abs(w - p[x] - p[x + 1] - p[x + 2]) * 100) / 765 <= Prozent

then begin

p[x] := b;

p[x + 1] := g;

p[x + 2] := r;

end;

inc(x, 3);

end;

end;

end;



procedure TForm1.Button9Click(Sender: TObject);

begin

anpassen(Image1.picture.bitmap, clwhite, 13);

image1.refresh;

end;



Gruß DBR
Eine Stunde denken spart zehn Stunden programmieren!

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: