C#を使用してビットマップのHSL値を変更する方法を知りたいです。ビットマップをロードして、すべてのピクセルでそのHSL値を変更できる必要があります。
質問する
1492 次
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 を使用すると、次のことができます。
- 「安全でない」コード ブロックを使用して、すべてのピクセルを反復処理し、値を変更します。
- Marshal.Copyを使用してピクセルを配列にコピーし、配列内の値を変更してから、ビットマップ ソースにコピーして戻します。
このトピックの詳細な説明については、こちらを参照してください。
これはRGB -> HSLに関する記事で、役に立つと思われます。
于 2011-07-14T13:54:16.460 に答える