Liệu hue / sat / lum có cung cấp dải màu nhỏ hơn RGB không?


8

Tất cả các giá trị của RGB phải là duy nhất và có thể phân biệt được, có nghĩa là thực sự có 256 * 256 * 256 màu.

Tuy nhiên, trong HSL, nếu L = 0 thì H và S có thể là bất cứ thứ gì, nhưng bạn vẫn có cùng màu (màu đen). Tương tự, nếu S = 0 thì H không thành vấn đề, vì bạn sẽ nhận được một chút màu xám tinh khiết. Vì vậy, có vẻ như mô hình HSL cung cấp tối đa 256 * 256 * 256 - 256 * 256 - 256 màu, hoặc ít hơn ~ 0,4% màu. Điều này có đúng không?


Các gam màu có thể khác nhau (tôi không biết), nhưng HSL và HSV được phát triển dưới dạng biến đổi cực của RGB. Tuy nhiên, suy nghĩ của bạn về "S = 0, H không thành vấn đề" khiến tôi sai lầm theo cách mà tôi không thể nói rõ. S = 0 là một cách khác để nói R = G = B. L = 0 trở thành (R = G = B = 0) và L = 1 (100%) = (R = G = B = 1). Tôi tò mò về câu trả lời.
horatio

@horatio Ví dụ: khi R = G = B = 128, H = 0, S = 0, L = 50, khi R = G = B = 255, H = 0, S = 0, L = 100 ...
Giăng

Đó là khá nhiều những gì tôi nói trong nhận xét của tôi. Hai câu trả lời xác nhận tuyên bố của tôi về chúng là sự đồng hình của không gian màu RGB với các giới hạn về "khả năng chọn" được áp đặt bởi các phạm vi số nguyên được áp đặt bởi hầu hết các phần mềm.
horatio

Câu trả lời:


10

Có và không.

Đúng:

Nó cung cấp một dải màu nhỏ hơn giả sử rằng số nguyên được yêu cầu cho mỗi giá trị . Ví dụ, Photoshop yêu cầu các giá trị HSB là số nguyên và sẽ hét vào bạn nếu bạn thử cách khác:

Lỗi chọn màu Photoshop

Tuy nhiên, toán học của bạn dường như được tắt. Bạn đang đi đúng hướng với RGB: mỗi giá trị có thể là một số nguyên từ 0-255, do đó, gam màu RGB bao gồm 256³ hoặc 16.581.375 màu.

Đối với HSL, các ràng buộc giá trị là khác nhau. H có thể là 0-359, S có thể là 0-100 và B có thể là 0-100. Vì vậy, số lượng bộ ba HSL duy nhất là 360 * 101 * 101, hoặc 3.672.360. Điều này chưa tính đến các màu trùng lặp và chúng tôi đã nhỏ hơn đáng kể so với RGB.

Tôi không đủ giỏi về thống kê để tính số lượng giá trị duy nhất cho HSL dựa trên số nguyên, vì vậy tôi thậm chí sẽ không thử

Kết quả là, sẽ có sự va chạm màu sắc. Bạn có thể tự thử điều này bằng cách kiểm tra giá trị của hai giá trị RGB rất gần nhau. Ví dụ: #00AAAA#00AAABcả hai đều được chuyển đổi thành 180 °, 100%, 67% trong Photoshop:

Photoshop chọn màu so sánh

Không:

Illustrator là một chút đặt trở lại. Thật hạnh phúc và sẵn sàng chấp nhận các giá trị thập phân cho HSB:

Công cụ chọn màu minh họa

CSS3 cũng chấp nhận giá trị thập phân cho hsl()hsla(). Thực hiện điều này làm cho nó cách chi tiết hơn so với RGB, mà không bao giờ nên chấp nhận các giá trị thập phân.


Rất tốt, cảm ơn bạn. Tôi đã không nhận ra phạm vi là khác nhau.
1279343

3

HSL (màu sắc, độ bão hòa, độ sáng ) và HSB là các mô hình màu phái sinh của mô hình màu RGB. Chúng bao phủ cùng một phạm vi (như trong gam màu) với số lượng điểm "đặc biệt" nhỏ hơn ở giữa.

Mô hình RGB xác định 256 ^ 3 hoặc 16.777.216 điểm
và HSL / HSB xác định 360 * 101 * 101 hoặc 3.672.360 điểm.

Bạn sẽ phải tìm ra lập trình có bao nhiêu điểm từ bản đồ HSL đến các điểm duy nhất của RGB. Không chỉ các điểm cực trị mà bạn đề cập đến ánh xạ tới một tập hợp các giá trị RGB. Ví dụ, cũng có nhiều công dân cho giá trị bão hòa là 1% (trong HSL) như bạn có thể kiểm tra ở đây .

Đó là lý thuyết. Trong thực tế, hầu hết các thiết bị không có khả năng xử lý / trình bày 16.777.216 màu "độc đáo và có thể phân biệt" và mắt người cũng không thể. Vì vậy, trong thực tế, sự khác biệt của số lượng giá trị "đặc biệt" thường (không phải luôn luôn) không quan trọng.


thông tin bổ sung tuyệt vời.
1279343
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.