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 值了.