này liên quan đến CSS mã màu:Trình duyệt xử lý rgb (phần trăm) như thế nào; cho số lạ
Đối hexcode chúng ta có thể đại diện cho 16.777.216 màu từ # 000000 đến #FFFFFF
Theo W3C Specs, tỷ lệ phần trăm RGB hợp lệ phù hợp trong một phạm vi từ (0.0% đến 100,0%) về cơ bản cho bạn 1,003,003,001 kết hợp màu sắc. (1001^3)
Theo thông số kỹ thuật:
giá trị bên ngoài gam thiết bị nên được cắt bớt hoặc ánh xạ vào gam khi gam là biết: các giá trị màu đỏ, xanh lá cây, và màu xanh phải đã thay đổi để nằm trong phạm vi được hỗ trợ bởi thiết bị. Tác nhân người dùng có thể thực hiện ánh xạ màu sắc có chất lượng cao hơn từ một gam màu đến cách khác. Đối với một màn hình CRT thông thường, mà gam thiết bị giống như sRGB, bốn quy tắc dưới đây là tương đương:
Tôi nghi ngờ nếu trình duyệt thực sự có thể làm cho tất cả những giá trị này. (nhưng nếu họ làm vui lòng cho tôi biết và bỏ qua phần còn lại của bài đăng này)
Giả sử có một số ánh xạ từ rgb (phần trăm) đến hex. (Nhưng một lần nữa Im không thực sự chắc chắn cách làm việc này)
Lý tưởng nhất là tôi muốn tìm hiểu chức năng rgb (tỷ lệ phần trăm) -> HEX
Nếu tôi phải đoán nó có lẽ sẽ là một trong những 3.
1) Vòng sang HEX gần
2) ceil đến HEX gần
3) sÀN đến HEX gần
vấn đề là tôi cần phải chính xác trên bản đồ và tôi không biết tìm kiếm ở đâu. Không có cách nào mà mắt tôi có thể phân biệt màu sắc ở cấp độ đó, nhưng có thể có một số cách thông minh để kiểm tra từng màu này.
Nó cũng có thể phụ thuộc vào trình duyệt. Điều này có thể được kiểm tra?
EDIT:
Firefox seems to round from empirical testing.
EDIT:
Tôi đang tìm thông qua mã nguồn của Firefox ngay bây giờ,
nsColor.h
// A color is a 32 bit unsigned integer with four components: R, G, B
// and A.
typedef PRUint32 nscolor;
Dường Fiefox chỉ có chỗ cho 255 giá trị cho mỗi R, G và B. Hinting rằng làm tròn có thể là câu trả lời, nhưng có thể đôi khi được thực hiện với kênh alpha.
Nếu bạn không thể biết sự khác biệt giữa '# 000000' và' # 000001', tại sao bạn cần công thức chính xác? Cũng là một cách kiểm tra mạch sẽ là để hiển thị một khối màu, nhấn Print Screen, và sử dụng công cụ Eyedropper của một chương trình đồ họa để tìm ra giá trị hex kết quả. – Toomai
Tôi đang làm việc trên một loại trình phân tích cú pháp tôi đoán, rõ ràng người dùng cuối không thể biết sự khác biệt giữa # 000000 và # 000001, nhưng mã cần phải tương đương trên tất cả các tài khoản. Tôi làm như ý tưởng eyedropper như là một bước đầu tiên mặc dù, cảm ơn! – Ray
Nếu spec không chỉ định ánh xạ, thì tôi hy vọng nó sẽ phụ thuộc vào trình duyệt, hoặc ít nhất nếu nó không phụ thuộc vào trình duyệt, thì đó chỉ là trùng hợp ngẫu nhiên mà nó không phải. Tôi tưởng tượng miễn là bạn nhất quán sau đó bạn đang được chính xác như bạn có thể được. Bạn đã kiểm tra với firebug hoặc một số như vậy trên phong cách tính toán để xem nó kết thúc như thế nào? – jswolf19