C# 使用图形移除颜色
C# Remove color using Graphics
我希望从 WMF
图像文件中仅删除一种颜色。
Metafile img = new Metafile(path + strFilename + ".wmf");
float planScale = 0.06615f;
float scale = 1200f / (float)img.Width;
planScale = planScale / scale; ;
float widht = img.Width * scale;
float height = img.Height * scale;
using (var target = new Bitmap((int)widht, (int)height))
{
using (var g = Graphics.FromImage(target))
{
g.DrawImage(img, 0, 0, (int)widht, (int)height);
target.Save("image.png", ImageFormat.Png);
}
}
目前,我加载一个 WMF
文件,设置比例并将其保存为 PNG
文件。
PNG 结果示例:
但现在我需要删除所有颜色(绿色、紫色....)并只设置一种颜色,例如灰色。
如果背景总是白色,你可以做类似的事情。您可以将 200
更改为您想要的内容,以调整不应更改的颜色。在这个例子中,白色没有改变。如果不想画黑,可以在target.SetPixel(x,y,Color.Black);
处调整Color
Metafile img = new Metafile("D:\Chrysanthemum.wmf");
float planScale = 0.06615f;
float scale = 1200f / (float)img.Width;
planScale = planScale / scale; ;
float widht = img.Width * scale;
float height = img.Height * scale;
using (var target = new Bitmap((int)widht, (int)height))
{
using (var g = Graphics.FromImage(target))
{
g.DrawImage(img, 0, 0, (int)widht, (int)height);
}
for (int x = 0; x < target.Width; x++)
{
for (int y = 0; y < target.Height; y++)
{
Color white = target.GetPixel(x, y);
if ((int)white.R > 200 || (int)white.G > 200 || (int)white.B > 200)
{
target.SetPixel(x, y, Color.Black);
}
}
}
target.Save("D:\image.png", ImageFormat.Png);
}
WMF 图片:
PNG 图片:
希望这就是您要搜索的内容。
我希望从 WMF
图像文件中仅删除一种颜色。
Metafile img = new Metafile(path + strFilename + ".wmf");
float planScale = 0.06615f;
float scale = 1200f / (float)img.Width;
planScale = planScale / scale; ;
float widht = img.Width * scale;
float height = img.Height * scale;
using (var target = new Bitmap((int)widht, (int)height))
{
using (var g = Graphics.FromImage(target))
{
g.DrawImage(img, 0, 0, (int)widht, (int)height);
target.Save("image.png", ImageFormat.Png);
}
}
目前,我加载一个 WMF
文件,设置比例并将其保存为 PNG
文件。
PNG 结果示例:
但现在我需要删除所有颜色(绿色、紫色....)并只设置一种颜色,例如灰色。
如果背景总是白色,你可以做类似的事情。您可以将 200
更改为您想要的内容,以调整不应更改的颜色。在这个例子中,白色没有改变。如果不想画黑,可以在target.SetPixel(x,y,Color.Black);
Metafile img = new Metafile("D:\Chrysanthemum.wmf");
float planScale = 0.06615f;
float scale = 1200f / (float)img.Width;
planScale = planScale / scale; ;
float widht = img.Width * scale;
float height = img.Height * scale;
using (var target = new Bitmap((int)widht, (int)height))
{
using (var g = Graphics.FromImage(target))
{
g.DrawImage(img, 0, 0, (int)widht, (int)height);
}
for (int x = 0; x < target.Width; x++)
{
for (int y = 0; y < target.Height; y++)
{
Color white = target.GetPixel(x, y);
if ((int)white.R > 200 || (int)white.G > 200 || (int)white.B > 200)
{
target.SetPixel(x, y, Color.Black);
}
}
}
target.Save("D:\image.png", ImageFormat.Png);
}
WMF 图片:
PNG 图片:
希望这就是您要搜索的内容。