C# 覆盖时保存图像非常慢
C# save image very slowly when overwriting
起初,我的 VS2017 创建图像快速流畅。但是当第二次运行并且已经存在相同文件名的图像时,程序每3次在bitmap.Save(...)
步暂停。创建所有 20 个 *.png 文件需要 5.4 秒,但如果所有文件都已存在于目标目录中,则需要 41.4 秒。我相信它正在处理文件覆盖。
代码如下:
for (int i = 0; i < 20; i++)
{
Bitmap bitmap = new Bitmap(5000, 5000);
Graphics graphics = Graphics.FromImage(bitmap);
//Draw something here...
bitmap.Save(i.ToString() + ".png", System.Drawing.Imaging.ImageFormat.Png);
Console.WriteLine("Image Saved");
bitmap.Dispose();
graphics.Dispose();
}
奇怪的是,如果我复制代码并将其粘贴到在另一台计算机上创建的新项目中,则不会出现此问题。但是,如果那台计算机 运行 从我的项目中发布的 *.exe 文件,它也会有同样的问题。
是否与我的Visual Studio环境设置有关?谢谢!
我发现问题是由趋势防病毒软件引起的。我关闭它后,程序恢复正常。可能是因为杀毒软件在监控或扫描覆盖过程,导致速度变慢。
谢谢大家的回复。
起初,我的 VS2017 创建图像快速流畅。但是当第二次运行并且已经存在相同文件名的图像时,程序每3次在bitmap.Save(...)
步暂停。创建所有 20 个 *.png 文件需要 5.4 秒,但如果所有文件都已存在于目标目录中,则需要 41.4 秒。我相信它正在处理文件覆盖。
代码如下:
for (int i = 0; i < 20; i++)
{
Bitmap bitmap = new Bitmap(5000, 5000);
Graphics graphics = Graphics.FromImage(bitmap);
//Draw something here...
bitmap.Save(i.ToString() + ".png", System.Drawing.Imaging.ImageFormat.Png);
Console.WriteLine("Image Saved");
bitmap.Dispose();
graphics.Dispose();
}
奇怪的是,如果我复制代码并将其粘贴到在另一台计算机上创建的新项目中,则不会出现此问题。但是,如果那台计算机 运行 从我的项目中发布的 *.exe 文件,它也会有同样的问题。
是否与我的Visual Studio环境设置有关?谢谢!
我发现问题是由趋势防病毒软件引起的。我关闭它后,程序恢复正常。可能是因为杀毒软件在监控或扫描覆盖过程,导致速度变慢。 谢谢大家的回复。