C#Bitmap保存一直提示GDI中发生一般性错误

johopig 2019-03-13 11:48:20
...全文
2268 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
平底锅锅锅 2019-03-18
  • 打赏
  • 举报
回复
图片格式改成其它的试试,也有可能图片有问题。
還是 2019-03-15
  • 打赏
  • 举报
回复
百度一份可用的代码不行吗,非要自己写? 代码中没有类似保存图片的代码吗,拿过来用就可以了。 自己先写一个小例子试一下,可以了在合并到代码中。 这个可以屏蔽其他的问题
stherix 2019-03-14
  • 打赏
  • 举报
回复
路径可能有问题,而且image名字和文件夹也是同名的,这不行 你试下@"D:\image.jpg"
johopig 2019-03-14
  • 打赏
  • 举报
回复
引用 1 楼 hztltgg 的回复:
save里写了个目录?需要一个文件名吧
已经写了文件名了,后来C盘目录下也有image这个文件夹,但是还是提示GDI发生一般性错误
hztltgg 2019-03-14
  • 打赏
  • 举报
回复
save里写了个目录?需要一个文件名吧
johopig 2019-03-14
  • 打赏
  • 举报
回复
谢谢上面帮助过的人,分有点少。。。谢谢你们哈~ 原来Save填写的路径必须存在,如果不确定是否存在可以先判断是否存在文件夹,然后再在这个文件夹里判断是否存在这个图片
                if (!System.IO.Directory.Exists(@"C:\\Users\\卢本伟\\Desktop\\Test\\Test\\image"))
                {
                    System.IO.Directory.CreateDirectory(@"C:\\Users\\卢本伟\\Desktop\\Test\\Test\\image");//不存在就创建文件夹 } 
                    //判断某文件是否存在 
                    if (File.Exists(@"C:\\Users\\卢本伟\\Desktop\\Test\\Test\\image" + name + ".png"))
                    {
                        return name;
                    }
                    else
                    {
                        image.Save("C:\\Users\\卢本伟\\Desktop\\Test\\Test\\image\\" + name + ".png", System.Drawing.Imaging.ImageFormat.Png);
                        return name;
                    }
                }
Save的话名称中不能包含目录,还要写好名称,记得写后缀,这里一直忘记给它写文件名了,只写到目录。。。。
johopig 2019-03-14
  • 打赏
  • 举报
回复
引用 24 楼 智者知已应修善业 的回复:
System.Drawing.Bitmap 图区 = new System.Drawing.Bitmap(100, 100); 图区.Save("d:\\ddddddddd.Bmp", System.Drawing.Imaging.ImageFormat.Bmp);
嗯嗯可以了谢谢你哈~
  • 打赏
  • 举报
回复
System.Drawing.Bitmap 图区 = new System.Drawing.Bitmap(100, 100);
图区.Save("d:\\ddddddddd.Bmp", System.Drawing.Imaging.ImageFormat.Bmp);
johopig 2019-03-14
  • 打赏
  • 举报
回复
引用 22 楼 智者知已应修善业 的回复:
System.Drawing.Bitmap 图区 = new System.Drawing.Bitmap(100, 100); 图区.Save("d:\\ddddddddd", System.Drawing.Imaging.ImageFormat.Bmp); 这样测试是可以的。
可以是可以了,但是这个Save不是保存到这个字符串的文件的目录下吗,为什么会不行,还有现在Save下来的图片都是这样的,需要手动改后缀名之后才能看到图片。。
  • 打赏
  • 举报
回复
System.Drawing.Bitmap 图区 = new System.Drawing.Bitmap(100, 100);
图区.Save("d:\\ddddddddd", System.Drawing.Imaging.ImageFormat.Bmp);
这样测试是可以的。
  • 打赏
  • 举报
回复
image.Save("C:\\imimim");这样试看,名称中含目录是不行的.
johopig 2019-03-14
  • 打赏
  • 举报
回复
引用 16 楼 hztltgg 的回复:
你说的C盘根目录下有image目录,然后又写c:\image也是有问题的,那个需要文件名,你存在一个目录了
我把它改为image.Save("C:\\im\\");之后还是不行。。。
johopig 2019-03-14
  • 打赏
  • 举报
回复
引用 18 楼 hztltgg 的回复:
如果文件夹不存在,save方法也是不能自动建文件夹的,需要事先建好
我在C盘右键只有一个文件夹可以新建,那现在就是没有权限创建文件夹是吗,那要怎么搞。。。
hztltgg 2019-03-14
  • 打赏
  • 举报
回复
如果文件夹不存在,save方法也是不能自动建文件夹的,需要事先建好
  • 打赏
  • 举报
回复
你试看加载一个图像上去看。
hztltgg 2019-03-14
  • 打赏
  • 举报
回复
你说的C盘根目录下有image目录,然后又写c:\image也是有问题的,那个需要文件名,你存在一个目录了
hztltgg 2019-03-14
  • 打赏
  • 举报
回复
试了代码,扩展名不写不是关键,生成的没有扩展名而已。你这个应该就是根目录下没有权限写文件,这个操作系统默认就这样了,你可以看看在C盘右键新建里面是不是只有文件夹,没有其他的。
johopig 2019-03-14
  • 打赏
  • 举报
回复
引用 13 楼 胖叔叔写代码 的回复:
管理员模式运行vs调试看看能行不?
还是不行。。。我服了
  • 打赏
  • 举报
回复
管理员模式运行vs调试看看能行不?
johopig 2019-03-14
  • 打赏
  • 举报
回复
引用 9 楼 hztltgg 的回复:
简化你的代码,去掉其他的,只保存图片看看出错吗?
还是会。。。
加载更多回复(8)
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 Node.js作为一个运行环境,其基础是Chrome的V8引擎,它最突出的优势在于能够支持JavaScript代码在服务器端执行,从而为网络应用程序创造了一个全新的执行平台。在Node.js生态,文件系统的相关操作由fs模块承担,而fs.readFile作为其的关键方法,专门用于实现文件内容的获取。本文旨在全面阐释fs.readFile方法的相关信息,包括其功能说明、语法结构、参数配置、应用范例以及源代码实现,以供那些需要在Node.js环境进行文件操作的程序员参考。 fs.readFile方法具备异步特性,意味着它在执行文件读取任务时不会断当前程序的运行流程,使得程序的其他部分能够同步执行。该方法的工作流程是:一旦调用,Node.js会立即反馈执行信号,然后在后台线程执行文件读取任务。当文件读取任务完成后,Node.js会通过一个预设的回调函数来处理读取结果或识别错误。 fs.readFile方法的语法结构如下: fs.readFile(path[, options], callback) - path:一个必须的参数,其数据类型可以是字符串、Buffer或Uint8Array,用于指示文件的具体位置或文件描述符。 - options:一个可选参数,形式为一个对象,用于设定文件的编码格式及打开模式。该对象可以包含encoding(字符编码,默认值为null,此时返回Buffer对象)和flag(文件打开模式,默认值为r,代表只读模式)。 - callback:一个必须的回调函数,在文件读取任务结束后被触发。若读取过程出现错误,err参数将包含错误详情,否则为n...

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧