Trình chọn màu đơn giản: Chọn & Sao chép giá trị màu RGB, Hex, CMYK
Trình chọn màu thân thiện với người dùng với hiển thị quang phổ tương tác và thanh trượt độ sáng. Chọn màu một cách trực quan hoặc nhập giá trị chính xác theo định dạng RGB, Hex hoặc CMYK. Sao chép mã màu chỉ với một cú nhấp chuột cho các dự án thiết kế của bạn.
Bảng chọn màu
RGB (0-255)
CMYK (0-100)
Bảng chọn màu
Tài liệu
Công Cụ Chọn Màu Đơn Giản và Thân Thiện với Người Dùng
Giới Thiệu
Công Cụ Chọn Màu là một ứng dụng trực quan, dễ sử dụng được thiết kế để giúp người dùng chọn, hình dung và chuyển đổi màu sắc qua nhiều định dạng màu khác nhau. Dù bạn là một nhà thiết kế web đang tạo ra một bảng màu, một nghệ sĩ kỹ thuật số đang tìm kiếm sắc thái hoàn hảo, hay một nhà phát triển đang triển khai giao diện người dùng, công cụ chọn màu này cung cấp một cách đơn giản để làm việc với màu sắc trong các định dạng RGB, Hexadecimal, CMYK và HSV. Với quang phổ màu tương tác, thanh trượt độ sáng và các tùy chọn đầu vào chính xác, bạn có thể nhanh chóng tìm, điều chỉnh và sao chép giá trị màu cho các dự án của mình.
Hiểu Các Mô Hình Màu
Trước khi đi vào cách sử dụng công cụ chọn màu, thật hữu ích khi hiểu các mô hình màu khác nhau mà nó hỗ trợ:
RGB (Đỏ, Xanh lá, Xanh dương)
RGB là một mô hình màu cộng tính, trong đó ánh sáng đỏ, xanh lá và xanh dương được kết hợp theo nhiều cách khác nhau để tái tạo một loạt màu sắc rộng lớn. Trong các ứng dụng kỹ thuật số:
- Mỗi thành phần (R, G, B) có giá trị từ 0 đến 255
- RGB(255, 0, 0) đại diện cho màu đỏ thuần khiết
- RGB(0, 255, 0) đại diện cho màu xanh lá thuần khiết
- RGB(0, 0, 255) đại diện cho màu xanh dương thuần khiết
- RGB(255, 255, 255) đại diện cho màu trắng
- RGB(0, 0, 0) đại diện cho màu đen
Mô hình RGB liên quan trực tiếp đến cách màu sắc được hiển thị trên màn hình, khiến nó trở thành lựa chọn chính cho thiết kế kỹ thuật số.
Hexadecimal (Hex)
Mã màu Hexadecimal là một cách để đại diện cho màu RGB bằng hệ thống số cơ sở 16:
- Một màu hex bắt đầu bằng dấu thăng (#) theo sau là sáu ký tự
- Cặp đầu tiên đại diện cho màu đỏ, cặp thứ hai đại diện cho màu xanh lá, và cặp thứ ba đại diện cho màu xanh dương
- Mỗi cặp có giá trị từ 00 đến FF (0-255 trong hệ thập phân)
- #FF0000 đại diện cho màu đỏ thuần khiết
- #00FF00 đại diện cho màu xanh lá thuần khiết
- #0000FF đại diện cho màu xanh dương thuần khiết
- Có thể sử dụng ký hiệu viết tắt cho một số màu (ví dụ: #F00 cho màu đỏ)
Mã hex được sử dụng rộng rãi trong phát triển web (CSS, HTML) và các ứng dụng thiết kế kỹ thuật số.
CMYK (Cyan, Magenta, Vàng, Đen)
CMYK là một mô hình màu trừ tính chủ yếu được sử dụng trong in màu:
- Mỗi thành phần có giá trị từ 0% đến 100%
- CMYK(0, 100, 100, 0) đại diện cho màu đỏ thuần khiết
- CMYK(100, 0, 100, 0) đại diện cho màu xanh lá thuần khiết
- CMYK(100, 100, 0, 0) đại diện cho màu xanh dương thuần khiết
- CMYK(0, 0, 0, 100) đại diện cho màu đen
- CMYK(0, 0, 0, 0) đại diện cho màu trắng (màu giấy)
Mặc dù chủ yếu được sử dụng cho in ấn, việc hiểu các giá trị CMYK có thể hữu ích khi thiết kế nội dung sẽ được in ra.
HSV (Hue, Saturation, Value)
HSV đại diện cho màu sắc theo các yếu tố:
- Hue: Loại màu (đỏ, vàng, xanh lá, v.v.), đo bằng độ (0-360°)
- Saturation: Cường độ hoặc độ tinh khiết của màu sắc (0-100%)
- Value: Độ sáng của màu sắc (0-100%)
HSV đặc biệt hữu ích cho việc chọn màu vì nó tách biệt lựa chọn màu sắc (hue) khỏi cường độ (saturation) và độ sáng (value), giúp việc điều chỉnh màu sắc trở nên trực quan hơn.
Công Thức Chuyển Đổi Màu
Công cụ chọn màu tự động chuyển đổi giữa các mô hình màu khác nhau bằng các công thức toán học sau:
Chuyển Đổi RGB sang Hex
Để chuyển đổi RGB sang mã hex:
- Chuyển đổi từng thành phần RGB (0-255) thành một số hex hai chữ số
- Nối ba giá trị hex lại với nhau với một tiền tố #
Trong đó toHex()
chuyển đổi một số thập phân thành biểu diễn hex của nó.
Chuyển Đổi RGB sang CMYK
Chuyển đổi từ RGB sang CMYK bao gồm các bước sau:
- Chuẩn hóa các giá trị RGB về khoảng 0-1
- Tính toán thành phần đen (K)
- Tính toán C, M và Y dựa trên K
Chuyển Đổi RGB sang HSV
Chuyển đổi RGB sang HSV:
Đối với Hue (H):
undefined1// Chuyển đổi RGB sang Hex
2function rgbToHex(r, g, b) {
3 const toHex = (c) => {
4 const hex = Math.round(c).toString(16);
5 return hex.length === 1 ? '0' + hex : hex;
6 };
7
8 return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
9}
10
11// Chuyển đổi Hex sang RGB
12function hexToRgb(hex) {
13 // Loại bỏ # nếu có
14 const cleanHex = hex.startsWith('#') ? hex.slice(1) : hex;
15
16 // Xử lý cả hex 3 chữ số và 6 chữ số
17 const expandedHex = cleanHex.length === 3
18 ? cleanHex.split('').map(char => char + char).join('')
19 : cleanHex;
20
21 const r = parseInt(expandedHex.substring(0, 2), 16);
22 const g = parseInt(expandedHex.substring(2, 4), 16);
23 const b = parseInt(expandedHex.substring(4, 6), 16);
24
25 return { r, g, b };
26}
27
28// Chuyển đổi RGB sang CMYK
29function rgbToCmyk(r, g, b) {
30 // Chuẩn hóa các giá trị RGB
31 const normalizedR = r / 255;
32 const normalizedG = g / 255;
33 const normalizedB = b / 255;
34
35 // Tính toán K (đen)
36 const k = 1 - Math.max(normalizedR, normalizedG, normalizedB);
37
38 // Xử lý màu đen thuần khiết
39 if (k === 1) {
40 return { c: 0, m: 0, y: 0, k: 100 };
41 }
42
43 // Tính toán C, M, Y
44 const c = ((1 - normalizedR - k) / (1 - k)) * 100;
45 const m = ((1 - normalizedG - k) / (1 - k)) * 100;
46 const y = ((1 - normalizedB - k) / (1 - k)) * 100;
47
48 return {
49 c: Math.round(c),
50 m: Math.round(m),
51 y: Math.round(y),
52 k: Math.round(k * 100)
53 };
54}
55
56// Ví dụ sử dụng
57const rgb = { r: 255, g: 0, b: 0 }; // Đỏ thuần khiết
58console.log(`Hex: ${rgbToHex(rgb.r, rgb.g, rgb.b)}`);
59console.log(`CMYK:`, rgbToCmyk(rgb.r, rgb.g, rgb.b));
60
1# Chuyển đổi RGB sang Hex
2def rgb_to_hex(r, g, b):
3 return f'#{r:02x}{g:02x}{b:02x}'
4
5# Chuyển đổi Hex sang RGB
6def hex_to_rgb(hex_color):
7 # Loại bỏ # nếu có
8 hex_color = hex_color.lstrip('#')
9
10 # Xử lý cả hex 3 chữ số và 6 chữ số
11 if len(hex_color) == 3:
12 hex_color = ''.join([c*2 for c in hex_color])
13
14 return {
15 'r': int(hex_color[0:2], 16),
16 'g': int(hex_color[2:4], 16),
17 'b': int(hex_color[4:6], 16)
18 }
19
20# Chuyển đổi RGB sang CMYK
21def rgb_to_cmyk(r, g, b):
22 # Chuẩn hóa các giá trị RGB
23 r_norm = r / 255.0
24 g_norm = g / 255.0
25 b_norm = b / 255.0
26
27 # Tính toán K (đen)
28 k = 1 - max(r_norm, g_norm, b_norm)
29
30 # Xử lý màu đen thuần khiết
31 if k == 1:
32 return {'c': 0, 'm': 0, 'y': 0, 'k': 100}
33
34 # Tính toán C, M, Y
35 c = ((1 - r_norm - k) / (1 - k)) * 100
36 m = ((1 - g_norm - k) / (1 - k)) * 100
37 y = ((1 - b_norm - k) / (1 - k)) * 100
38
39 return {
40 'c': round(c),
41 'm': round(m),
42 'y': round(y),
43 'k': round(k * 100)
44 }
45
46# Ví dụ sử dụng
47rgb = {'r': 0, 'g': 128, 'b': 255} # Xanh dương trời
48hex_color = rgb_to_hex(rgb['r'], rgb['g'], rgb['b'])
49cmyk = rgb_to_cmyk(rgb['r'], rgb['g'], rgb['b'])
50
51print(f"Hex: {hex_color}")
52print(f"CMYK: C={cmyk['c']}%, M={cmyk['m']}%, Y={cmyk['y']}%, K={cmyk['k']}%")
53
1public class ColorConverter {
2 // Chuyển đổi RGB sang Hex
3 public static String rgbToHex(int r, int g, int b) {
4 return String.format("#%02x%02x%02x", r, g, b);
5 }
6
7 // Chuyển đổi Hex sang RGB
8 public static int[] hexToRgb(String hexColor) {
9 // Loại bỏ # nếu có
10 if (hexColor.startsWith("#")) {
11 hexColor = hexColor.substring(1);
12 }
13
14 // Xử lý cả hex 3 chữ số và 6 chữ số
15 if (hexColor.length() == 3) {
16 String expandedHex = "";
17 for (char c : hexColor.toCharArray()) {
18 expandedHex += c + String.valueOf(c);
19 }
20 hexColor = expandedHex;
21 }
22
23 int r = Integer.parseInt(hexColor.substring(0, 2), 16);
24 int g = Integer.parseInt(hexColor.substring(2, 4), 16);
25 int b = Integer.parseInt(hexColor.substring(4, 6), 16);
26
27 return new int[]{r, g, b};
28 }
29
30 // Chuyển đổi RGB sang CMYK
31 public static double[] rgbToCmyk(int r, int g, int b) {
32 // Chuẩn hóa các giá trị RGB
33 double normalizedR = r / 255.0;
34 double normalizedG = g / 255.0;
35 double normalizedB = b / 255.0;
36
37 // Tính toán K (đen)
38 double k = 1 - Math.max(Math.max(normalizedR, normalizedG), normalizedB);
39
40 // Xử lý màu đen thuần khiết
41 if (k == 1) {
42 return new double[]{0, 0, 0, 100};
43 }
44
45 // Tính toán C, M, Y
46 double c = ((1 - normalizedR - k) / (1 - k)) * 100;
47 double m = ((1 - normalizedG - k) / (1 - k)) * 100;
48 double y = ((1 - normalizedB - k) / (1 - k)) * 100;
49
50 return new double[]{
51 Math.round(c),
52 Math.round(m),
53 Math.round(y),
54 Math.round(k * 100)
55 };
56 }
57
58 public static void main(String[] args) {
59 // Ví dụ sử dụng
60 int r = 75, g = 0, b = 130; // Tím
61 String hexColor = rgbToHex(r, g, b);
62 double[] cmyk = rgbToCmyk(r, g, b);
63
64 System.out.println("Hex: " + hexColor);
65 System.out.printf("CMYK: C=%.0f%%, M=%.0f%%, Y=%.0f%%, K=%.0f%%\n",
66 cmyk[0], cmyk[1], cmyk[2], cmyk[3]);
67 }
68}
69
Tài Liệu Tham Khảo
-
Agoston, M. K. (2013). Đồ Họa Máy Tính và Mô Hình Hình Học: Triển Khai và Thuật Toán. Springer Science & Business Media.
-
Adobe Systems. (2000). Mã Màu Adobe RGB (1998). Adobe Systems Incorporated.
-
Fairchild, M. D. (2013). Mô Hình Xuất Hiện Màu. John Wiley & Sons.
-
Hunt, R. W. G., & Pointer, M. R. (2011). Đo Lường Màu Sắc. John Wiley & Sons.
-
Poynton, C. (2012). Video Kỹ Thuật Số và HD: Thuật Toán và Giao Diện. Elsevier.
-
W3C. (2018). Mô Đun Màu CSS Cấp 4. W3C Working Draft. Truy cập từ https://www.w3.org/TR/css-color-4/
-
Hướng Dẫn Khả Năng Tiếp Cận Nội Dung Web (WCAG) 2.1. (2018). Truy cập từ https://www.w3.org/TR/WCAG21/
-
Ủy Ban Màu Quốc Tế. (2004). Đặc Tả ICC.1:2004-10 (Phiên Bản Hồ Sơ 4.2.0.0). Truy cập từ http://www.color.org/specification/ICC1v42_2006-05.pdf
Hãy Thử Công Cụ Chọn Màu Của Chúng Tôi Ngày Hôm Nay!
Sẵn sàng tìm màu hoàn hảo cho dự án của bạn? Công cụ chọn màu thân thiện với người dùng của chúng tôi giúp bạn dễ dàng chọn, điều chỉnh và chuyển đổi màu sắc giữa các định dạng khác nhau. Dù bạn đang thiết kế một trang web, tạo ra nghệ thuật kỹ thuật số, hay lập kế hoạch cho tài liệu in, công cụ của chúng tôi cung cấp độ chính xác và tính linh hoạt bạn cần.
Bắt đầu thử nghiệm với màu sắc ngay bây giờ và nâng cao thiết kế của bạn lên một tầm cao mới!
Phản hồi
Nhấp vào thông báo phản hồi để bắt đầu gửi phản hồi về công cụ này
Công cụ liên quan
Khám phá thêm các công cụ có thể hữu ích cho quy trình làm việc của bạn