http://delphi.about.com/od/delphitips2007/qt/rgb_cmyk.htm
印刷四分色模式是彩色印刷時採用的一種套色模式, 請參考 http://zh.wikipedia.org/wiki/CMYK.
要轉換 RGB 為 CMYK, 先要建立 2 個 record 資料型別.
uses ...., Math;
type
TRGBColor = record
Red,
Green,
Blue : integer;
end;
TCMYKColor = record
Cyan,
Yellow,
Magenta,
KeyPlate : integer;
end;
再寫一段轉換函式, 如下:
implementation
{$R *.dfm}
function RGBtoCMYK(const rgbColor : TRGBColor) : TCMYKColor;
begin
with Result do
begin
Cyan := 1 - rgbColor.Red;
Magenta := 1 - rgbColor.Green;
Yellow := 1 - rgbColor.Blue;
KeyPlate := Min(Min(Cyan, Magenta), Yellow) ;
Cyan := Cyan - KeyPlate;
Magenta := Magenta - KeyPlate;
Yellow := Yellow - KeyPlate;
end;
end;
在 Form 上放一個按鈕, 按鈕的 click event 寫入下述程式碼:
procedure TForm1.Button1Click(Sender: TObject);
var
rgbColor : TRGBColor;
cmykColor : TCMYKColor;
begin
rgbColor.Red := 128;
rgbColor.Green := 64;
rgbColor.Blue := 192;
cmykColor := RGBtoCMYK(rgbColor) ;
Caption := Format('%d,%d,%d,%d',[cmykColor.Cyan, cmykColor.Magenta, cmykColor.Yellow, cmykColor.KeyPlate])
end;
按一下 Button1 鈕, 就會在 Form 的 Caption 欄顯示轉換後的 CMYK 值了.