youyiyang 2022-05-15 14:19 采纳率: 74.2%
浏览 76
已结题

.Net 图片保存不成功 system.runtime.interopservices.externalexception (0x80004005)错误

在winform开发中,主程序调用一个Form把图片保存到磁盘目录中,保存的函数如下所示:


```c#
private void buttonSaveFile_Click(object sender, EventArgs e)
        {
            string pictureName = "";
            switch (this.wpType)
            {
                case 1:  // 点 
                    pictureName = saveFileDialog1.InitialDirectory + this.selectedWp + "_p.jpg";
                    break;
                case 2:  //边
                    pictureName = saveFileDialog1.InitialDirectory + this.selectedWp + "_e.jpg";
                    break;
                case 3: //扫描节点
                    pictureName = saveFileDialog1.InitialDirectory + this.selectedWp + "_s.jpg";
                    break;
            }
             //图片另存
            using (MemoryStream mem = new MemoryStream())
            {
                try
                {
                    Bitmap bmp = new Bitmap(pictureBox1.Image);
                    //保存到磁盘文件
                    bmp.Save(@pictureName, pictureBox1.Image.RawFormat);
                    bmp.Dispose();
                    MessageBox.Show("图片保存成功!", "注意", MessageBoxButtons.OK, MessageBoxIcon.Information);
                   
                    switch (this.wpType)
                    {
                        case 1:  // 点 
                            if (f1 != null)
                            {
                                f1(pictureName);
                            }
                            break;
                        case 2:  //边
                            if (f2 != null)
                            {
                                f2(pictureName);
                            }
                            break;
                        case 3: //扫描节点
                            if (f3 != null)
                            {
                                f3(pictureName);
                            }
                            break;
                    }
                }
                catch (Exception err)
                {
                    MessageBox.Show("图片保存不成功!\r\n" + err.ToString(), "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                finally
                {

                }
            }

保存的是Form上的一个pictureBox里的图片,

```c#
private void buttonOpenFile_Click(object sender, EventArgs e)
        {
            DialogResult result = openFileDialog1.ShowDialog();//显示对话框接返回值
            if (result == DialogResult.OK)
            {
                pictureBox1.Image = System.Drawing.Image.FromFile(openFileDialog1.FileName);
            }
        }

当我第一次打开文件然后保存是没有报错的,但是当再次打开文件保存就报这个错误,
错误之处在程序的

bmp.Save(@pictureName, pictureBox1.Image.RawFormat);

这句话上,图片的权限没有问题。
请问到底是哪里出错了,导致的这个问题?谢谢了!

  • 写回答

2条回答 默认 最新

  • 丨Haruna 2022-05-17 17:16
    关注

    更改存储图像的特定文件夹的权限。
    属性 > 安全 > 编辑 > 添加 - 选择“所有人”并选中允许“完全控制”

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月20日
  • 已采纳回答 7月12日
  • 创建了问题 5月15日

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献