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