CMYK sang RGB: Chuyển đổi màu mực in thành màu màn hình
CMYK và RGB là hai hệ màu hoạt động dựa trên các nguyên lý vật lý hoàn toàn khác nhau. CMYK là mô hình màu trừ (subtractive) với bốn kênh—cyan, magenta, yellow và key (đen)—được thiết kế cho mực in trên giấy. RGB là mô hình màu cộng (additive) với ba kênh—đỏ, lục, lam—mô phỏng cách màn hình phát ra ánh sáng. Công cụ chuyển đổi CMYK sang RGB trên trang này nhận bốn phần trăm đầu vào (C, M, Y, K) và trả về giá trị RGB dưới dạng ba số từ 0 đến 255, hiển thị ngay lập tức cùng với các định dạng màu khác.
Điểm khác biệt cốt lõi của trang này nằm ở chỗ quá trình chuyển đổi luôn là một phép xấp xỉ. Không có hồ sơ ICC (International Color Consortium profile) đi kèm, kết quả thu được chỉ là điểm khởi đầu cho công việc in ấn, không phải một sự khớp chính xác—màu sắc rực rỡ trên màn hình không phải lúc nào cũng có thể tái tạo bằng mực in. Trên trang này, đích đến cụ thể là RGB (0–255), vì vậy bất kỳ giá trị CMYK nào nằm ngoài dải màu khả kiến của RGB đều được điều chỉnh về màu hiển thị gần nhất, điều này có thể gây ra sự sai lệch nhẹ nếu bạn chuyển đổi ngược lại.
Nguyên lý vật lý đằng sau hai hệ màu
CMYK hoạt động dựa trên cơ chế hấp thụ ánh sáng. Mực in màu cyan hấp thụ ánh sáng đỏ, màu magenta hấp thụ ánh sáng lục, màu yellow hấp thụ ánh sáng lam. Khi chồng các lớp mực lên nhau, chúng loại bỏ dần các bước sóng ánh sáng phản xạ, tạo ra màu đen khi không còn ánh sáng nào phản xạ. Đây là lý do tại sao CMYK được gọi là mô hình màu trừ.
RGB hoạt động theo chiều ngược lại. Mỗi điểm ảnh trên màn hình phát ra ánh sáng đỏ, lục và lam với cường độ khác nhau. Khi cả ba kênh đều đạt giá trị 255, chúng tạo ra ánh sáng trắng. Khi cả ba đều bằng 0, không có ánh sáng nào phát ra, tạo ra màu đen. Đây là mô hình màu cộng.
Sự khác biệt về dải màu (gamut) là yếu tố then chốt. RGB có gamut rộng hơn CMYK, nghĩa là có những màu trên màn hình—như các màu neon sáng—mà mực in không thể tái tạo được. Khoảng 15–20% màu trong không gian RGB nằm ngoài khả năng của CMYK, tùy thuộc vào loại mực và giấy cụ thể. Ngược lại, một số màu CMYK nhất định—đặc biệt là các màu tối, đậm—có thể nằm ngoài dải màu hiển thị được trên màn hình, đó là lý do tại sao công cụ này phải thực hiện điều chỉnh.
Cách tính toán chuyển đổi CMYK sang RGB
Phương pháp chuyển đổi cơ bản không sử dụng hồ sơ ICC diễn ra qua hai bước. Đầu tiên, chuyển đổi CMYK thành RGB trung gian bằng cách loại bỏ thành phần đen (K) khỏi ba kênh màu. Công thức phổ biến nhất là:
- R = 255 × (1 − C/100) × (1 − K/100)
- G = 255 × (1 − M/100) × (1 − K/100)
- B = 255 × (1 − Y/100) × (1 − K/100)
Lấy ví dụ với đầu vào là 66%, 69%, 0%, 10%:
- R = 255 × (1 − 0,66) × (1 − 0,10) = 255 × 0,34 × 0,9 = 78
- G = 255 × (1 − 0,69) × (1 − 0,10) = 255 × 0,31 × 0,9 = 71
- B = 255 × (1 − 0) × (1 − 0,10) = 255 × 1 × 0,9 = 230
Kết quả RGB là (78, 71, 230), tương ứng với mã hex #4E47E6.
Bước thứ hai là kiểm tra xem bộ ba RGB này có nằm trong dải màu hiển thị được hay không. Vì tất cả các giá trị 0–255 đều nằm trong gamut RGB, nên không cần điều chỉnh trong trường hợp này. Tuy nhiên, nếu một kênh vượt quá 255 hoặc nhỏ hơn 0 (điều này xảy ra khi màu CMYK quá bão hòa hoặc quá tối), công cụ sẽ gán giá trị đó về 255 hoặc 0 tương ứng.
Công thức này không phải là chuẩn duy nhất. Các biến thể tồn tại như sử dụng hàm gamma hoặc điều chỉnh theo loại mực cụ thể. Nhưng đối với mục đích hiển thị trên web, nó cung cấp một phép xấp xỉ hợp lý.
Vấn đề dải màu và điều chỉnh ngoài gamut
Khi bạn nhập một giá trị CMYK mà khi chuyển đổi cho ra RGB nằm ngoài khoảng 0–255, công cụ sẽ thực hiện điều chỉnh về màu hiển thị gần nhất. Điều này thường xảy ra với các màu CMYK rất đậm hoặc rất sáng.
Ví dụ, hãy thử với CMYK là 100%, 100%, 0%, 0% (màu xanh lam đậm thuần túy). Áp dụng công thức:
- R = 255 × (1 − 1) × (1 − 0) = 0
- G = 255 × (1 − 1) × (1 − 0) = 0
- B = 255 × (1 − 0) × (1 − 0) = 255
Kết quả là (0, 0, 255)—màu xanh lam thuần—vẫn nằm trong gamut. Nhưng nếu thử 100%, 100%, 100%, 100%:
- R = 255 × (1 − 1) × (1 − 1) = 0
- G = 255 × (1 − 1) × (1 − 1) = 0
- B = 255 × (1 − 1) × (1 − 1) = 0
Kết quả là đen tuyền (0, 0, 0), vẫn hợp lệ. Tuy nhiên, các màu như 0%, 0%, 0%, 100% (chỉ có mực đen) cho RGB (0, 0, 0) cũng tương tự.
Vấn đề thực sự xuất hiện khi màu CMYK nằm ngoài vùng màu hiển thị về mặt sắc độ. Ví dụ, một màu CMYK có độ bão hòa cực cao ở một kênh nào đó có thể tạo ra giá trị RGB giả định vượt quá 255. Trong trường hợp đó, công cụ cắt (clamp) giá trị về 255, và màu hiển thị sẽ sáng hơn một chút so với dự kiến. Khi bạn chuyển đổi màu đã điều chỉnh này trở lại CMYK, các giá trị thu được sẽ khác so với ban đầu.
Đây là lý do tại sao việc sử dụng màu CMYK để thiết kế web mà không kiểm tra trước có thể dẫn đến kết quả không mong muốn. Một thiết kế in ấn trông hoàn hảo trên màn hình khi chuyển đổi thủ công có thể bị lệch màu khi in thực tế.
Hạn chế thực tế và vai trò của hồ sơ ICC
Không có công cụ chuyển đổi CMYK sang RGB trực tuyến nào—kể cả trang này—có thể đảm bảo kết quả khớp chính xác với màu in thực tế nếu không có hồ sơ ICC. Hồ sơ ICC là một tệp chứa thông số về đặc tính màu của một thiết bị cụ thể (máy in, loại giấy, mực). Nó mô tả chính xác cách thiết bị đó tái tạo màu sắc.
Mỗi tổ hợp máy in—giấy—mực đều có một gamut riêng. Một màu CMYK in trên giấy bóng sẽ trông khác trên giấy mờ. Một máy in laser sẽ cho kết quả khác máy in phun. Công cụ trực tuyến này sử dụng công thức chuyển đổi tổng quát, không tính đến các biến số đó.
Do đó, giá trị CMYK hiển thị trên trang này chỉ là ước tính trên màn hình. Nếu bạn cần màu chính xác cho in ấn chuyên nghiệp, bạn nên sử dụng hồ sơ ICC từ nhà cung cấp dịch vụ in của mình. Nhiều phần mềm thiết kế chuyên nghiệp như Adobe Photoshop hoặc Illustrator hỗ trợ nhập hồ sơ ICC và thực hiện chuyển đổi gamut-mapped, giữ lại độ trung thực màu tốt hơn.
Các định dạng đầu ra và cách đọc chúng
Khi bạn nhập giá trị CMYK, công cụ hiển thị ngay lập tức kết quả ở sáu định dạng:
- HEX: Mã hex sáu ký tự, ví dụ
#4E47E6. Đây là định dạng phổ biến nhất cho CSS và HTML. - RGB: Ba số từ 0 đến 255, ví dụ
78, 71, 230. Đây là cách biểu diễn trực tiếp của mô hình màu cộng. - HSL: Hue (0–360), Saturation (%), Lightness (%). Ví dụ: Hue 238°, Saturation 76%, Lightness 59%. HSL dễ hiểu hơn cho con người vì nó tách biệt sắc độ, độ bão hòa và độ sáng.
- HSV: Hue (0–360), Saturation (%), Value (%). Tương tự HSL nhưng dùng giá trị (value) thay vì độ sáng, phổ biến trong các ứng dụng đồ họa.
- CMYK: Giá trị ban đầu bạn nhập, được hiển thị lại để xác nhận.
- LAB: L (0–100), a và b (âm/dương). LAB là không gian màu độc lập thiết bị, được thiết kế để xấp xỉ cách mắt người cảm nhận màu sắc.
Tất cả các giá trị này được cập nhật đồng thời khi bạn chỉnh sửa bất kỳ trường nào. Nếu bạn nhập một giá trị không hợp lệ cho CMYK, ví dụ 100, 200, 0, 0, công cụ sẽ hiển thị thông báo lỗi: "Nhập CMYK dưới dạng bốn phần trăm 0–100, như 66%, 69%, 0%, 10%." Quá trình chuyển đổi diễn ra hoàn toàn trong trình duyệt của bạn; không có dữ liệu nào được tải lên máy chủ.
Những lỗi thường gặp khi làm việc với CMYK và RGB
Một sai lầm phổ biến là nghĩ rằng chuyển đổi CMYK sang RGB là một phép tính một chiều có thể đảo ngược. Như đã thảo luận, điều này không đúng do sự khác biệt về gamut. Một màu RGB sáng có thể không có màu CMYK tương ứng trong gamut in, và ngược lại.
Lỗi thứ hai là sử dụng giá trị CMYK từ một phần mềm thiết kế đồ họa (ví dụ, giá trị từ bảng màu Pantone in) và nhập trực tiếp vào CSS mà không kiểm tra. Giá trị đó có thể trông ổn trên màn hình của bạn, nhưng trên màn hình của người dùng khác—với cài đặt hiển thị khác—nó có thể trông hoàn toàn khác.
Lỗi thứ ba là không kiểm tra tính hợp lệ của giá trị K (key/đen). Trong in ấn, K được sử dụng để tạo màu đen thuần và để tiết kiệm mực màu. Khi chuyển đổi sang RGB, giá trị K ảnh hưởng đến tất cả ba kênh R, G, B. Nhập sai K có thể dẫn đến màu tối bất thường.
Cuối cùng, nhiều người quên rằng các giá trị phần trăm CMYK này là ước tính dựa trên giả định về loại mực chuẩn (ví dụ, SWOP hoặc FOGRA). Nếu bạn in trên giấy báo, gamut sẽ hẹp hơn so với in trên giấy ảnh bóng. Công cụ này sử dụng gamut chung, vì vậy nó không thể thay thế cho hiệu chỉnh màu chuyên nghiệp.
Câu hỏi thường gặp
Tại sao kết quả chuyển đổi CMYK sang RGB của tôi lại khác so với phần mềm thiết kế? Các phần mềm chuyên nghiệp thường sử dụng hồ sơ ICC cụ thể cho thiết bị của bạn. Công cụ trực tuyến này sử dụng công thức tổng quát mà không có hồ sơ, dẫn đến sự khác biệt nhỏ. Để có kết quả chính xác, hãy sử dụng hồ sơ ICC từ nhà cung cấp dịch vụ in của bạn.
Làm thế nào để biết màu CMYK của tôi có nằm ngoài gamut RGB không? Công cụ này tự động điều chỉnh các màu ngoài gamut. Nếu bạn nhận thấy sự khác biệt rõ rệt giữa màu bạn mong đợi và màu hiển thị, có khả năng màu đã bị cắt (clamp). Bạn có thể kiểm tra bằng cách chuyển đổi ngược lại—nếu kết quả không trùng với giá trị CMYK ban đầu, màu đó đã nằm ngoài gamut.
Tôi có thể sử dụng kết quả từ công cụ này cho in ấn chuyên nghiệp không? Không. Kết quả này chỉ là ước tính trên màn hình. Để in ấn chuyên nghiệp, bạn cần làm việc với hồ sơ ICC từ nhà in của mình và kiểm tra màu bằng máy đo màu hoặc swatch vật lý.
Tại sao tôi nhập CMYK 0 0 0 100 nhưng RGB lại thành 0 0 0?
Đó là kết quả chính xác. Mực đen thuần (100% K) tương ứng với không có ánh sáng nào được phát ra từ màn hình, tức là màu đen (0, 0, 0) trong RGB.
Tôi nhập 50 50 50 50 nhưng kết quả trông rất tối. Điều đó có đúng không?
Có. Công thức nhân giá trị K vào tất cả các kênh. Với K = 50%, mỗi kênh bị giảm đi một nửa sau khi đã giảm do C, M, Y. Kết quả là một màu xám đậm, gần như đen.
Công cụ này có hỗ trợ chuyển đổi ngược RGB sang CMYK không? Trang này được thiết kế để chuyển đổi CMYK sang RGB. Tuy nhiên, bạn có thể nhập giá trị RGB vào trường tương ứng và công cụ sẽ hiển thị CMYK ước tính, nhưng cần lưu ý rằng đây chỉ là phép xấp xỉ và có thể không phản ánh chính xác màu in thực tế.