2010-04-03 48 views
5

Farklı kullanıcılar bir belgeye metin ekledikçe, metnin renginin değişmesini istediğim bir proje üzerinde çalışıyorum.Programatik olarak renkleri değiştir C#

Orijinal olarak, C# 'nin ön tanımlı renk değerlerini kullanıyordum ve kullanmak istediklerimi uygulamada bir enum içine koyup farklı kullanıcılar ek açıklama ekledikçe renkler arasında dolaşıyordum. Bu iyi çalışıyor ve ben bu çözümle tamamım. Bununla birlikte, RGB değerlerini ve türetilmiş renkleri bu şekilde değiştirmeyi de seçebilirdim. Farklı renk kümeleri elde etmek için bu değerleri değiştirmek için ne tür bir algoritmanın iyi olacağını merak ediyorum. Bu sadece düşündüğüm bir şeyin bir alıştırması.

Biraz açıklığa kavuşturmak için, renk değerlerinden birini (R, G veya B) arttırmalarını istemiyorum çünkü bu, renklerimde bana yeterince çeşitlilik vermez. Ancak, bence her üç eşit miktarda arttırma da işe yaramıyor. Renkleri tekrarlamak için dikkat etmeliyim (bir noktaya kadar). Projem için şartlar en fazla 10 farklı yorumcu bekliyor.

cevap

4

Bu tür bir sorun için yapılacak en iyi şey, HSL veya HSV değerlerini kullanmaktır ve yalnızca tonu değiştirir. Ardından tekrar RGB'ye dönüştürün.

See this link for more information.

+0

Teşekkürler, Brian. Vay, düşündüğümden çok daha basit. Oldukça temiz bir çözüm. – JasCav

+0

@ Jason: Ya da kesinlikle daha karmaşık görünüyor, çünkü yapmak istediğiniz şeyle uyuşmayan bir renk modeliyle çalışırken, * daha zor *. –

İlgili konular