我想知道如何使用C#更改位图的HSL值。必须能够加载位图并在每个像素上更改其HSL值。
你需要查看每个像素的RGB,转换为HSL,修改HSL值,再将其转换回RGB,并将新的像素数据写入位图。不幸的是,System.Drawing没有内置的HSL到RGB功能(尽管RGB到HSL存在)。
查看以下代码项目文章,获取可以进行双向RGB/HSL转换的类:http://www.codeproject.com/KB/recipes/colorspace1.aspx
您可以在Bitmap上使用LockBits,这将为您提供一个BitmapData对象。
使用BitmapData,您可以:
有关此主题的详细说明,请单击此处。
这里有一篇关于RGB -> HSL的文章,您可能会发现它有用。