C#不使用Dialog保存图片.为了让您了解应用程序的功能,我在这里提供屏幕截图,在按下添加团队后,所有文本框数据都写入文本文件,我希望图像自动保存到预定义文件夹“logos”中,但是每次我按保存时都会收到GDI++错误。在网上阅读了一些旧帖子后,我发现它可能是由文件权限、文件大小、文件名甚至打开的流等原因引起的。这是我目前用来保存我的文件的代码,它会抛出一个错误:privatevoidbtnAddTeam_Click(objectsender,EventArgse){//VALIDATIONFORTEXTFILEANDOTHERSTUFFHERE...//SAVETHEIMAGEFILEstringfilePath=picTeamLogo.ImageLocation;图像tempImage=Image.FromFile(filePath);tempImage.Save(@"../logos/");如果您正在查看屏幕截图,请不要被“arsenal.png”弄糊涂了。我知道这不是完整的文件路径,它的转换是用另一种方法处理的,因为只需要将文件名写入文本文件。如果有人对我出错的地方有任何想法,那么请指出正确的方向,像我刚刚收到的GDI这样的模糊错误真是令人头疼!亚历克斯。那是因为你没有为保存函数指定文件名!检查一下:stringfilePath=picTeamLogo.ImageLocation;FileInfofi=newFileInfo(文件路径);图像tempImage=Image.FromFile(fi.FullName);tempImage.Save(@"../logo/"+fi.Name);现在它工作正常试试这个方法publicvoidstoreFile(FileUploadFile,stringdirName){if(!Directory.Exists(MapPath("~/uploads/"+dirName))){"+目录名));}stringsaveLocation=MapPath("~/uploads/"+dirName+"/"+Path.GetFileName(File.FileName));文件.另存为(保存位置);}对于类似的问题,请参阅我之前的帖子...GDI+中的Bitmap.Save方法发生一般错误Streamisheldlocked-您可以使用内存流作为临时位置,然后保存。当从文件构造Bitmap对象或Image对象时,文件在对象的生命周期内保持锁定状态。因此,您无法更改图像并将其保存回原始位置的同一文件中。http://support.microsoft.com/?id=814675字符串outputFileName="...";使用(MemoryStream内存=newMemoryStream()){使用(FileStreamfs=newFileStream(outputFileName,FileMode.Create,FileAccess.ReadWrite)){tempImage.Save(memory,ImageFormat.Jpeg);//memory.ToStream(fs)//我觉得一样byte[]bytes=memory.ToArray();fs.Write(bytes,0,bytes.Length);或者另一种方法是通过MemoryStream将图像加载到图像中-这样流就不会首先被锁定......以上是C#学习教程:C#不使用Dialog来保存整个内容图片的分享,如果大家想要的话对大家有用,需要多多了解C#学习教程。希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
