PieChart.SaveImage(path,imageFormate) 第二次保存图像时显示异常
PieChart.SaveImage(path,imageFormate) show exception on saving image 2nd time
我在 Windows Forms Application 中使用 .NET 4.0 框架的图表控件 我一直在通过 PieChart.SaveImage(Path,ChartImageFormat.Png)
在位置保存饼图图像,当我用 Microsoft.Office.Interop.Word
创建文档文件,我将该图像粘贴到该文档中。它第一次进行得很好并且 .doc 创建成功,但我尝试在获胜表格中第二次保存饼图 运行 它给出了 System.IO.Exception
"The process cannot access the file 'path' because it is being used by
another process."
当我终止程序并运行它再次覆盖以前的图像但是当我想在程序运行ning期间第二次保存图像时它给出相同的异常
这就是我保存图片的方式
private Void SavePieChart()
{
string PieChartPath= Application.StartupPath + @"\Chart.png";
PieChart.SaveImage(PieChartPath, ChartImageFormat.Png);
}
我搜索过,但没有找到任何有效的解决方案来解决我的问题,
如果有任何错误,请指出我的错误,或任何帮助 link 解决此问题的方法。 .
编辑 1
这是我将图像粘贴到 Doc 文件中的地方
System.Drawing.Image PieChart =System.Drawing.Image.FromFile(PieChartPath);
oHeader1 = oDoc.Content.Paragraphs.Add(ref oMissing);
Logothread = new Thread(() => Clipboard.SetImage(PieChart));
Logothread.SetApartmentState(ApartmentState.STA); //Set the thread to STA
Logothread.Start();
Logothread.Join();
oHeader1.Range.Paste();
oHeader1.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
oHeader1.Range.InsertParagraphAfter();
提前致谢
问题是当我在 doc 文件中粘贴图像时,我拍摄的图像像
System.Drawing.Image PieChart =System.Drawing.Image.FromFile(PieChartPath);
正如 Reza 和 Taw 所描述的那样,FromFile() 使文件一直在使用中,所以这就是为什么当我第二次尝试保存图像时它显示异常文件已经在处理中,
我使用 FromStram() 将其添加到我的代码中
byte[] DataBytes= System.IO.File.ReadAllBytes(PieChartPath);
System.IO.MemoryStream ms = new System.IO.MemoryStream(DataBytes);
System.Drawing.Image PieChart = System.Drawing.Image.FromStream(ms);
我在 Windows Forms Application 中使用 .NET 4.0 框架的图表控件 我一直在通过 PieChart.SaveImage(Path,ChartImageFormat.Png)
在位置保存饼图图像,当我用 Microsoft.Office.Interop.Word
创建文档文件,我将该图像粘贴到该文档中。它第一次进行得很好并且 .doc 创建成功,但我尝试在获胜表格中第二次保存饼图 运行 它给出了 System.IO.Exception
"The process cannot access the file 'path' because it is being used by another process."
当我终止程序并运行它再次覆盖以前的图像但是当我想在程序运行ning期间第二次保存图像时它给出相同的异常
这就是我保存图片的方式
private Void SavePieChart()
{
string PieChartPath= Application.StartupPath + @"\Chart.png";
PieChart.SaveImage(PieChartPath, ChartImageFormat.Png);
}
我搜索过,但没有找到任何有效的解决方案来解决我的问题, 如果有任何错误,请指出我的错误,或任何帮助 link 解决此问题的方法。 .
编辑 1
这是我将图像粘贴到 Doc 文件中的地方
System.Drawing.Image PieChart =System.Drawing.Image.FromFile(PieChartPath);
oHeader1 = oDoc.Content.Paragraphs.Add(ref oMissing);
Logothread = new Thread(() => Clipboard.SetImage(PieChart));
Logothread.SetApartmentState(ApartmentState.STA); //Set the thread to STA
Logothread.Start();
Logothread.Join();
oHeader1.Range.Paste();
oHeader1.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
oHeader1.Range.InsertParagraphAfter();
提前致谢
问题是当我在 doc 文件中粘贴图像时,我拍摄的图像像
System.Drawing.Image PieChart =System.Drawing.Image.FromFile(PieChartPath);
正如 Reza 和 Taw 所描述的那样,FromFile() 使文件一直在使用中,所以这就是为什么当我第二次尝试保存图像时它显示异常文件已经在处理中,
我使用 FromStram() 将其添加到我的代码中
byte[] DataBytes= System.IO.File.ReadAllBytes(PieChartPath);
System.IO.MemoryStream ms = new System.IO.MemoryStream(DataBytes);
System.Drawing.Image PieChart = System.Drawing.Image.FromStream(ms);