16. november 2003 - 16:18Der er
5 kommentarer og 1 løsning
RGB (TColor) til RYB (Red Yellow Blue) og omvendt
Jeg søger et par funktioner, der kan konvertere en RGB-farve (TColor) til en RYB-farve (Red Yellow Blue).
Noget i den her retning:
type TRYBColor = record Red: Double; // Double for at undgå evt. kvalitetstab, skal gå fra 0 til 1 Yellow: Double; // Skal gå fra 0 til 1 Blue: Double; // Skal gå fra 0 til 1 end;
function RGB2RYB(RGB: TColor): TRYBColor; begin // kode ... end;
function RYB2RGB(RYB: TRYBColor): TColor; begin // kode ... end;
En Delphi tcolor er en 32bit integer pakket med 3* 8 bit for de tre farver.
Nedenstående er et klip fra et af mine programmer - jeg håber du kan bruge det som inspiration:
type trgb = record r, g, b: byte end;
function colorvalue(rgb: trgb): tcolor; begin with rgb do colorvalue := (b shl 8 + g) shl 8 + r; end;
function rgbvalue(rgb: trgb): string; begin with rgb do rgbvalue := 'RGB=('+long2strs(r)+','+long2strs(g)+','+long2strs(b)+')'; end;
procedure color2rgb(c: tcolor; var rgb: trgb); begin with rgb do begin r := c and $ff; c := c shr 8; g := c and $ff; c := c shr 8; b := c and $ff; end; end;
Hvad med om du konventerede dine RGB vaerdier til CMYK (Cyan Magenta Yellow Key)
Function CMYK(c, m, y, k: Byte): COLORREF;
Similar to RGB function but for CMYK color coordinates.
GetCMYCK color
Function GetCValue(cmyk: COLORREF): Byte; Function GetMValue(cmyk: COLORREF): Byte; Function GetYValue(cmyk: COLORREF): Byte; Function GetKValue(cmyk: COLORREF): Byte;
Der kan du snuppe din Gule farve vaerdi, ogsaa ellers tage R og B fra din RGB farve....
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.