.NET で画像をプログラムで色付けする簡単な方法はありますか? 基本的に、白黒の画像があり、その上にピンクのレイヤーを配置し、そのレイヤーの不透明度を下げて画像をピンク色にする必要があります。
5 に答える
すばらしいImageMagickライブラリを使用する必要があります。.NET バインディングがあるので問題ありません。
楽しむ!:)
これらのリンクをチェックしてください:
http://www.codeproject.com/KB/GDI-plus/csharpgraphicfilters11.aspx
半透明のレイヤーを上に置くだけでなく、画像に色を付けたい場合は、もう少し複雑になると思います。PhotoShopの「画面」レイヤーモードと同じ効果が必要な場合は、画像のすべての黒の色合いを新しい色の色合いに置き換えて、白い部分を白に保つ必要があります。
.NETで最も確実に実行できますが、ある種のライブラリを調べても問題はないと思います。
頭に浮かぶ方法は、 Drawing パッケージを使用して、画像の上に特定の色 (アルファを設定できます) で四角形を描画することです。あまり効率的ではありませんが、キャッシュを使用すると、ビジー状態のサーバーでも害はありません。
これは、.net フレームワーク メソッドには少しカスタムすぎます..単一のメソッド呼び出しソリューションが見つからない場合..私は何かを見て何かを投稿します。
WPF がある場合は、コントロールに画像を読み込むことができます。その上に別のコントロール (ピンクの塗りつぶしと透明度を持つ四角形) を配置します。(両方が完全に重なるように、レイアウトにグリッドのようなものを使用します)次に、次のことができます
RenderTargetBitmap bmp = new RenderTargetBitmap( imageWidth,imageHeight,
DPIHoriz, DPIVert,
PixelFormats.Pbrga32);
// if you don't want to make the controls 'visible' on screen, you need to trigger size calculations explicitly.
grid.Measure(new Size(imageWidth, imageHeight));
grid.Arrange(new Rect(0,0, imageWidth, imageHeight);
bmp.Render(grid);
したがって、画面に表示されているものはすべて、メモリ内のビットマップに書き込まれます。その後、それを保存できます。それがうまくいかない場合は、WriteableBitmap クラスを使用してピクセル レベルの制御を行い、バイト労働を行うことができます。