• 转化RGB颜色为CMYK颜色


    procedure RGBTOCMYK(R : byte;
                        G : byte;
                        B : byte;
                        var C : byte;
                        var M : byte;
                        var Y : byte;
                        var K : byte);
    begin
      C := 255 - R;
      M := 255 - G;
      Y := 255 - B;
      if C < M then
        K := C else
        K := M;
      if Y < K then
        K := Y;
      if k > 0 then begin
        c := c - k;
        m := m - k;
        y := y - k;
      end;
    end;
    
    procedure CMYKTORGB(C : byte;
                        M: byte;
                        Y : byte;
                        K : byte;
                        var R : byte;
                        var G : byte;
                        var B : byte);
    begin
       if (Integer(C) + Integer(K)) < 255 then
         R := 255 - (C + K) else
         R := 0;
       if (Integer(M) + Integer(K)) < 255 then
         G := 255 - (M + K) else
         G := 0;
       if (Integer(Y) + Integer(K)) < 255 then
         B := 255 - (Y + K) else
         B := 0;
    end;
    
    procedure ColorCorrectCMYK(var C : byte;
                               var M : byte;
                               var Y : byte;
                               var K : byte);
    var
      MinColor : byte;
    begin
      if C < M then
        MinColor := C else
        MinColor := M;
      if Y < MinColor  then
        MinColor := Y;
      if MinColor + K > 255 then
        MinColor := 255 - K;
      C := C - MinColor;
      M := M - MinColor;
      Y := Y - MinColor;
      K := K + MinColor;
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      R : byte;
      G : byte;
      B : byte;
      C : byte;
      M : byte;
      Y : byte;
      K : byte;
    begin
      R := 151;
      G := 81;
      B := 55;
      Memo1.Lines.Add('R = ' + IntToStr(R));
      Memo1.Lines.Add('G = ' + IntToStr(G));
      Memo1.Lines.Add('B = ' + IntToStr(B));
      Memo1.Lines.Add('-------------------');
      RGBTOCMYK(R, G, B, C, M, Y, K);
      Memo1.Lines.Add('C = ' + IntToStr(C));
      Memo1.Lines.Add('M = ' + IntToStr(M));
      Memo1.Lines.Add('Y = ' + IntToStr(Y));
      Memo1.Lines.Add('K = ' + IntToStr(K));
      Memo1.Lines.Add('-------------------');
      CMYKTORGB(C, M, Y, K, R, G, B);
      Memo1.Lines.Add('R = ' + IntToStr(R));
      Memo1.Lines.Add('G = ' + IntToStr(G));
      Memo1.Lines.Add('B = ' + IntToStr(B));
      Memo1.Lines.Add('-------------------');
      RGBTOCMYK(R, G, B, C, M, Y, K);
      c := c + 2;
      m := m + 2;
      y := y + 2;
      ColorCorrectCMYK(C, M, Y, K);
      Memo1.Lines.Add('C = ' + IntToStr(C));
      Memo1.Lines.Add('M = ' + IntToStr(M));
      Memo1.Lines.Add('Y = ' + IntToStr(Y));
      Memo1.Lines.Add('K = ' + IntToStr(K));
    end;
  • 相关阅读:
    【git】------git开发过程中的使用流程------
    js原型链的深度理解!
    mvc框架模式
    node环境下express路由,
    前后端 分离及不分离
    node中间件概念
    JS-------DOM0级事件处理和DOM2级事件处理-------简单记法
    call、apply、bind的区别
    移动端Click300毫秒点击延迟
    JS 详解 Cookie、 LocalStorage 与 SessionStorage
  • 原文地址:https://www.cnblogs.com/yzryc/p/6374082.html
Copyright © 2020-2023  润新知