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

.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 09:16
    关注

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

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 有关汽车的MC9S12XS128单片机实验
  • ¥15 求c语言动态链表相关课程有偿,或能将这块知识点讲明白
  • ¥15 FLKT界面刷新异常
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥50 单细胞测序拟时序分析
  • ¥50 运行springboot项目报错
  • ¥15 FTP 站点对站点传输失败
  • ¥15 宝塔面板一键迁移使用不了
  • ¥15 求一个按键录像存储到内存卡的ESP32CAM代码
  • ¥15 如何单独修改下列canvas推箱子代码target参数?,插入图片代替其形状,就是哪个绿色的圆圈每关用插入的图片替代
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部