Tôi muốn làm tối màu hiện có để sử dụng trong cọ vẽ gradient. Ai đó có thể cho tôi biết làm thế nào để làm điều này xin vui lòng?Làm cách nào để điều chỉnh độ sáng của màu?
C#, .net 2.0, GDI +
Color AdjustBrightness(Color c1, float factor)
{
float r = ((c1.R * factor) > 255) ? 255 : (c1.R * factor);
float g = ((c1.G * factor) > 255) ? 255 : (c1.G * factor);
float b = ((c1.B * factor) > 255) ? 255 : (c1.B * factor);
Color c = Color.FromArgb(c1.A,(int)r, (int)g, (int)b);
return c ;
}
này hoạt động, nhưng doesn' t thực sự cung cấp các giá trị chính xác cho các giá trị màu percuptual. Tôi khuyên bạn nên xem xét câu trả lời của Richard hoặc dommer để biết chi tiết về mô hình màu HSL/HSV. – Ant
Bạn phải cẩn thận nếu bạn quyết định sử dụng * 1.25 để làm cho sáng hơn nếu kết quả là trên 255 nó sẽ ném một ngoại lệ. –