Avatar billede athlon-pascal Juniormester
06. september 2003 - 17:26 Der er 4 kommentarer og
2 løsninger

Websikre farver

Jeg søger en function, der finder den nærmeste websikre farve.

Den skal være som følgende:

function GetNearestWebSafeColor(aColor: TColor): TColor;

Læs evt. mere her: http://www.html.dk/dokumentation/farver/

Jeg bruger Delphi 7 Personal
Avatar billede arne_v Ekspert
06. september 2003 - 17:42 #1
Jeg er desværre ikke skrap til Delphi (TColor og den slags).

Men algoritmen må være som:

type
  Color = record
              r,g,b : integer;
          end;

function NearOne(col : integer) : integer;

begin
  NearOne := ((col + ($33 div 2)) div $33) * $33;
end;

function Near(col : Color) : Color;

var
  res : Color;

begin
  res.r := NearOne(col.r);
  res.g := NearOne(col.g);
  res.b := NearOne(col.b);
  Near := res;
end;
Avatar billede athlon-pascal Juniormester
06. september 2003 - 18:54 #2
Arne_V -> Læg et svar, lidt point skal du have :-)

function GetNearestWebSafeColor(aColor: TColor): TColor;
var
  I: Integer;
  RGB: Array [0..2] of Byte;
  RGBColor: TColorRef;
begin
  RGBColor := ColorToRGB(aColor);
  RGB[0] := GetRValue(RGBColor);
  RGB[1] := GetGValue(RGBColor);
  RGB[2] := GetBValue(RGBColor);
  for I := 0 to 2 do
  begin
    if (RGB[I] mod $33) > ($33 div 2) then
      RGB[I] := RGB[I] + $33 - (RGB[I] mod $33)
    else
      RGB[I] := RGB[I] - (RGB[I] mod $33);
  end;
  Result := Windows.RGB(RGB[0], RGB[1], RGB[2]);
end;
Avatar billede arne_v Ekspert
06. september 2003 - 19:26 #3
ok
Avatar billede athlon-pascal Juniormester
06. september 2003 - 19:28 #4
Pis, der var jeg lidt for hurtig... Det var dig der skulle have 45!
Avatar billede athlon-pascal Juniormester
06. september 2003 - 19:29 #5
Avatar billede arne_v Ekspert
06. september 2003 - 19:30 #6
Jeg synes da iøvrigt at min formel er pænere.

:-)

(du kunne godt bruge den i din for løkke)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging