Einzelnen Beitrag anzeigen

hame

Registriert seit: 8. Jul 2005
Ort: 85521 Ottobrunn
4 Beiträge
 
Delphi 7 Professional
 
#1

TColor gibt mir keine 256 Farben

  Alt 16. Feb 2019, 10:24
Hallo,
wollte mal ausprobieren ob es möglich ist mit einer 256 Farben Grafik die entsprechenden Farbindizies der Palette zu ermitteln.
Leider wird bei dem von mir eingeschlagenen Weg nur die Farbe wiedergegeben die der in TColor definierten am nächsten kommt und die Grafik
wird dadurch zerstört.
Weiß jemand Rat?
Delphi-Quellcode:
procedure TForm1.Button22Click(Sender: TObject);
var hoch, breit,i: Integer;
      red,green,blue: Byte;
                   p: TColor;
Label nextPixel;
begin
  with Form1.Image1.Canvas do begin
    for hoch:=0 to maxY do begin
      for breit:=0 to maxX do begin
        p:=Image1.Canvas.Pixels[breit,hoch];
        red:=GetRValue(p);
        green:=GetGValue(p);
        blue:=GetBValue(p);
        if (red=0) and (green=0) and (blue=0) then goto nextPixel; // schwarz nicht in Palette
        for i:=0 to 255 do begin
          if (red=r[i]) and (green=g[i]) and (blue=b[i]) then Bild[breit,hoch]:=i; // gefunden
        end;
nextPixel:
      end;// for breit
    end; // for hoch
  end; // with
end;
  Mit Zitat antworten Zitat