3

C#を使用してビットマップのHSL値を変更する方法を知りたいです。ビットマップをロードして、すべてのピクセルでそのHSL値を変更できる必要があります。

4

2 に答える 2

0

すべてのピクセルの RGB を確認し、HSL に変換し、HSL 値を変更し、RGB に戻して、新しいピクセル データをビットマップに書き込む必要があります。残念ながら、System.Drawing には HSL から RGB への機能が組み込まれていません (ただし、RGB から HSL への機能は存在します)。

双方向の RGB/HSL 変換を実行できるクラスについては、次のコード プロジェクトの記事を参照してください: http://www.codeproject.com/KB/recipes/colorspace1.aspx

于 2011-07-14T13:49:14.197 に答える
0

Bitmap でLockBitsを使用すると、 BitmapDataオブジェクトが得られます。

BitmapData を使用すると、次のことができます。

  1. 「安全でない」コード ブロックを使用して、すべてのピクセルを反復処理し、値を変更します。
  2. Marshal.Copyを使用してピクセルを配列にコピーし、配列内の値を変更してから、ビットマップ ソースにコピーして戻します。

このトピックの詳細な説明については、こちらを参照してください。

これはRGB -> HSLに関する記事で、役に立つと思われます。

于 2011-07-14T13:54:16.460 に答える