Як конвертувати RGB у CMYK?

RGB і CMYK — це дві основні колірні моделі, які використовуються для цифрових дисплеїв і друку відповідно. Якщо ви працюєте з дизайном або друком, вам може знадобитися конвертувати кольори з RGB у CMYK. Ми вже робили допис про те як конвертувати CMYK у RGB. Розглянемо зворотню конвертацію.

Що таке RGB і CMYK?

Формула для конвертації RGB → CMYK

Щоб перевести RGB у CMYK, використовуйте таку формулу:

  1. Визначте значення кольорів у діапазоні від 0 до 1 (поділіть значення RGB на 255).
  2. Обчисліть значення K:

    K = 1 - max(R, G, B)
    
  3. Обчисліть значення C, M, Y:

    C = (1 - R - K) / (1 - K)
    M = (1 - G - K) / (1 - K)
    Y = (1 - B - K) / (1 - K)
    

    (Якщо K = 1, то C = M = Y = 0.)

Приклад коду на JavaScript

function rgbToCmyk(r, g, b) {
  let rNorm = r / 255, gNorm = g / 255, bNorm = b / 255;
  let k = 1 - Math.max(rNorm, gNorm, bNorm);
  let c = (1 - rNorm - k) / (1 - k) || 0;
  let m = (1 - gNorm - k) / (1 - k) || 0;
  let y = (1 - bNorm - k) / (1 - k) || 0;
  return `cmyk(${(c * 100).toFixed(1)}%, ${(m * 100).toFixed(1)}%, ${(y * 100).toFixed(1)}%, ${(k * 100).toFixed(1)}%)`;
}

Ця функція приймає значення RGB у діапазоні від 0 до 255 та повертає відповідні значення CMYK у відсотках.