2008-09-29 10 views
1

.NETで画像をプログラムで簡単にカラー化する方法はありますか?基本的には白黒の画像があり、その上にピンクというレイヤーを置き、そのレイヤーの不透明度を下げてピンク色のカラーリングを作成する必要があります。.NETで画像を「カラー化」

答えて

2

素晴らしいImageMagickライブラリを使用する必要があります。それは.NETバインディングを持っているので、そこに問題はありません。

楽しくお楽しみください! :)

0

バネを頭に浮かべる方法は、描画パッケージを使用して、指定された色の画像に矩形を描くことです(アルファを設定できます)。これはあまり効率的ではありませんが、キャッシュを使用すると、忙しいサーバーであっても、何の害もありません。

0

をこれは、.NET Frameworkのメソッドのためにあまりにもカスタム..少しです。私は何か見ることができる何かを掲示する。

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クラスを使用してピクセルレベルの制御を行い、バイト労働を行うことができます。

0

ちょうど透明なレイヤーを上に置くのではなく、画像を色づけしたいと思うと少し複雑になると思います。 PhotoShopの「スクリーン」レイヤーモードと同じ効果を持たせたい場合は、画像内のすべてのシェードを新しい色のシェードに置き換えて、白い部分を白色に保つ必要があります。

.NETで最も確実に行うことができますが、何らかの種類のライブラリを調べることは妥当です。

関連する問題