我想知道如何使用C#更改位图的HSL值。 必须可以加载位图并在每个像素上更改它的HSL值。
答案 0 :(得分:0)
您必须查看每个像素的RGB,将其转换为HSL,修改HSL值,转换回RGB并将新像素数据写入位图。不幸的是,System.Drawing没有内置的HSL到RGB功能(尽管RGB到HSL确实存在)。
查看以下代码项目文章,了解可进行双向RGB / HSL转换的类:http://www.codeproject.com/KB/recipes/colorspace1.aspx
答案 1 :(得分:0)
您可以在位图上使用LockBits,这会为您提供BitmapData个对象。
使用BitmapData,您可以:
可以找到here的详细解释。
以下是一篇关于RGB -> HSL的文章,您可能会发现它很有用。