2008-09-29 98 views
1

有沒有簡單的方法在.NET中編程着色圖像?基本上我們有一個黑白圖像,需要在其上面塗上一層粉紅色,並減少該圖層的不透明度,以使圖片變成粉色。在.NET中「着色」圖像

回答

2

您應該使用精彩的ImageMagick庫。它有.NET綁定,所以沒有問題。

玩得開心! :)

0

想到的方法是使用Drawing包在給定顏色的圖片上繪製矩形(可以設置爲alpha)。這不是非常有效,但通過緩存,即使在繁忙的服務器上也不會造成任何傷害。

0

這是一個有點太爲定製.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類進行像素級控制,並進行字節分配。

0

我認爲如果您想爲圖片着色而不是將smi透明的圖層置於頂部,會更復雜一些。如果您想要在PhotoShop中具有與「屏幕」圖層模式相同的效果,則必須將圖像中的所有黑色陰影替換爲新顏色的陰影,以使白色部分保持白色。

它最能定義在.NET中完成,但我認爲它不會傷害到某種類型的庫。