質問

.NETで画像をプログラムで色付けする簡単な方法はありますか?基本的に白黒の画像があり、その上にピンクなどのレイヤーを配置し、そのレイヤーの不透明度を下げて画像をピンクに色付けする必要があります。

役に立ちましたか?

解決

すばらしい ImageMagick ライブラリを使用する必要があります。 .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クラスでピクセルレベルの制御を行い、バイトラボを実行できます。

上に半透明のレイヤーを置くだけでなく、画像を色付けしたい場合は、少し複雑になると思います。 「画面」と同じ効果を得るにはPhotoShopのレイヤーモードでは、画像のすべての黒を新しい色の黒に置き換えて、白い部分を白に保つ必要があります。

.NETで最も明確に実行できますが、何らかのライブラリを調べても害はないと思われます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top