请问为什么C# image.save里面带有中文路径就不行?

image.save(@"d:\1.jpg") 这样就可以
image.save(@"d:\文件\1.jpg") 这样就不行。提示GDI+ 中发生一般性错误。

陪伴而非守候
浏览 352回答 2
2回答

繁星淼淼

可能是Bitmap对象或一个图像对象从一个文件,构造时该文件仍保留锁定对于对象的生存期。 因此导致GDI+ 中发生一般性错误。试试将其读入后拷贝到新对象再保存:Bitmap bmp = new Bitmap(openFileDialog1 .FileName );Bitmap bmp2 = new Bitmap(1024, 768, PixelFormat.Format16bppRgb555);//参数自设,与第一个一致即可Graphics draw = Graphics.FromImage(bmp2); //将第一个bmp拷贝到bmp2中draw.DrawImage(bmp,0,0);draw.Dispose();bmp.Dispose();//释放bmp文件资源你再操作一下bmp2试试,应该就没问题了。

有只小跳蛙

那你就别带中文路径啊晕,正常的命名方式都是用英文的,目的就是避免不必要的BUG。你把文件夹的名称改一下,改成英文或者数字都可以解决啊,别太纠结了,命名规范是不建议用中文命名的。
打开App,查看更多内容
随时随地看视频慕课网APP