.net &引用;着色“;NET中的图像

.net &引用;着色“;NET中的图像,.net,image-manipulation,episerver,colorize,.net,Image Manipulation,Episerver,Colorize,有没有简单的方法可以在.NET中通过编程对图像着色?基本上,我们有一个黑白图像,需要在上面放一层粉红色,并降低该层的不透明度,使图片着色为粉红色。您应该使用奇妙的库。它有.NET绑定,因此没有问题 玩得开心!:) 想到的方法是使用绘图包在图片上以给定的颜色绘制一个矩形(您可以设置alpha)。它的效率不是很高,但使用缓存,即使在繁忙的服务器上也不会造成任何伤害。查看以下链接: 对于.net framework方法来说,这有点过于自定义。。如果找不到单个方法调用解决方案。。我贴了一些可以看的东西

有没有简单的方法可以在.NET中通过编程对图像着色?基本上,我们有一个黑白图像,需要在上面放一层粉红色,并降低该层的不透明度,使图片着色为粉红色。

您应该使用奇妙的库。它有.NET绑定,因此没有问题


玩得开心!:)

想到的方法是使用绘图包在图片上以给定的颜色绘制一个矩形(您可以设置alpha)。它的效率不是很高,但使用缓存,即使在繁忙的服务器上也不会造成任何伤害。

查看以下链接:


对于.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类进行像素级控制,并执行字节劳动。

我认为,如果您想为图像着色,而不是只在上面放置smi透明层,那么这将有点复杂。如果你想在PhotoShop中获得与“屏幕”层模式相同的效果,那么你必须用新颜色的阴影替换图像中的所有黑色阴影,以保持白色部分

它完全可以在.NET中完成,但我相信查看某种库不会有什么坏处