2012-01-29 23 views
6

Làm cách nào tốt nhất để làm tối màu cho đến khi có thể đọc được? Tôi có một loạt các tiêu đề có màu liên quan, nhưng một số màu này rất nhẹ và bất kỳ văn bản nào được vẽ trong chúng đều không thể đọc được. Tôi đã rối tung xung quanh với HSB và tôi dường như không thể nhận được một thuật toán xuống mà tối màu sắc mà không làm cho nó trông bạc.C# Cách tốt nhất để làm tối màu cho đến khi có thể đọc được

tôi đã cơ bản chỉ được doign này, nhưng nó dường như không có được những gì tôi sẽ gọi cho kết quả "tốt":

Color c = 
    FromHSB(
    orig.A, 
    orig.GetHue(), 
    orig.GetSaturation(), 
    orig.GetBrightness() > .9 ? 
     orig.GetBrightness() - MyClass.Random(.5, .10) 
     : orig.GetBrightness()); 

Tôi nghĩ rằng tôi muốn thay đổi độ bão hòa quá. Có cách nào tiêu chuẩn để làm điều này?

+0

Bạn có thể muốn cũng thử http://ux.stackexchange.com/ – Ani

+3

Xét rằng hiệu ứng bạn là sau khi phụ thuộc vào ý kiến ​​cá nhân của riêng bạn và nhận thức về màu sắc, bạn có thể không tìm thấy câu trả lời ở đây. Làm thế nào về việc sử dụng một ứng dụng sơn để điều chỉnh HSL của một màu ánh sáng và xem những gì bạn nghĩ là có vẻ tốt. – ColinE

Trả lời

1

Tôi về cơ bản chỉ hack cùng một trình ngẫu nhiên để thêm thành phần vào giá trị RGB nếu tổng giá trị RGB quá thấp hoặc bất kỳ mục nào quá thấp. Đó là một cách không khắc nghiệt để làm điều đó, nhưng dường như nó tạo ra kết quả tốt.

double threshold = .8; 

for (int j = 0; j < 3; j++) 
{ 
    if (color.GetBrightness() > threshold) 
    { 
    color[j] -= new MyRandom(0, 20/255); 
    }     
} 
+1

Không phải là 20/255 bằng không? –

+0

Có, nhưng mã giả râm của nó ... – Mark

Các vấn đề liên quan