【发布时间】:2011-07-14 13:42:35
【问题描述】:
我想知道如何使用 C# 更改位图的 HSL 值。 必须可以加载位图并在每个像素上更改其 HSL 值。
【问题讨论】:
我想知道如何使用 C# 更改位图的 HSL 值。 必须可以加载位图并在每个像素上更改其 HSL 值。
【问题讨论】:
您必须查看每个像素的 RGB,将其转换为 HSL,修改 HSL 值,转换回 RGB 并将新的像素数据写入位图。不幸的是,System.Drawing 没有内置的 HSL 到 RGB 功能(尽管 RGB 到 HSL 确实存在)。
查看以下代码项目文章,了解可以进行两种 RGB/HSL 转换的类:http://www.codeproject.com/KB/recipes/colorspace1.aspx
【讨论】:
您可以在您的位图上使用LockBits,这将为您提供一个BitmapData 对象。
使用 BitmapData,您可以:
这个话题的详细解释可以找到here。
这是一篇关于 RGB -> HSL 的文章,您可能会觉得有用。
【讨论】: