Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何更换一套颜色';阴影';另一套_C#_Image_Replace_Colors - Fatal编程技术网

C# 如何更换一套颜色';阴影';另一套

C# 如何更换一套颜色';阴影';另一套,c#,image,replace,colors,C#,Image,Replace,Colors,我正在寻找一个'魔术'功能,将采取一个图像,并返回一份副本,但与一套色彩色调替换为另一套 e、 我有一张红鱼的照片:它有各种灰度和黑白,但本质上是各种深浅的红色。我想把它传递给这个“魔法”函数,并告诉它改变颜色。红色阴影变为等效颜色。黄色阴影等等。只要简单的(彩虹)颜色就足够了 我在这里和互联网上看到了许多代码片段,但它们似乎专注于用另一种颜色替换一种颜色或使用阈值,这在交互方面效果很好,但还不够神奇 我想应用这一点的图像不是照片或任何太复杂的东西,只是图标或简单的精灵之类的。(我只是厌倦了在图

我正在寻找一个'魔术'功能,将采取一个图像,并返回一份副本,但与一套色彩色调替换为另一套

e、 我有一张红鱼的照片:它有各种灰度和黑白,但本质上是各种深浅的红色。我想把它传递给这个“魔法”函数,并告诉它改变颜色。红色阴影变为等效颜色。黄色阴影等等。只要简单的(彩虹)颜色就足够了

我在这里和互联网上看到了许多代码片段,但它们似乎专注于用另一种颜色替换一种颜色或使用阈值,这在交互方面效果很好,但还不够神奇

我想应用这一点的图像不是照片或任何太复杂的东西,只是图标或简单的精灵之类的。(我只是厌倦了在图像编辑器中创建副本!)


任何人都有类似的功能吗?

您可以使用Oliver的答案中显示的AHSB()中的
来完成此操作(或任何其他允许您根据HSB值创建颜色的函数)。使用此功能,您可以轻松更改图像的色调,如下所示:

var image = new Bitmap("D:\\fish.png"); // location of your image
var color = Color.Red; //The color in the hue you want to change the image.

for (var x = 0; x < image.Width; x++)
{
    for (int y = 0; y < image.Height; y++)
    {
        Color originalColor = image.GetPixel(x, y);
        Color changedColor = FromAhsb(originalColor.A, color.GetHue(), originalColor.GetSaturation(), originalColor.GetBrightness());
        image.SetPixel(x,y, changedColor);
    }
}

image.Save("D:\\new_fish.png", System.Drawing.Imaging.ImageFormat.Png); // location of your new image
var image=新位图(“D:\\fish.png”);//图像的位置
var color=颜色。红色//要更改图像的色调中的颜色。
对于(var x=0;x
这将产生以下结果:

从 到

在这里查看已接受的答案,这可能是您可以扩展的内容!这正是我想要的。感谢CDirkx和Oliver,我为没有找到合适的术语(“色调”)而感到羞愧。