GDI+中发生一般性错误的解决办法
开发的过程中遇到了这个错误想要记录下来!
我是在保存图片文件时遇到的这个错误。
网上也搜了很多资料,试过之后还是会出错,代码其实也都大同小异没有太大区别,先把我遇到问题的经过描述一下:
我要做的是读取身份证信息,其中身份证的证件照也是需要存储下来的,身份证中的照片是二进制流读取的,需要在picturebox控件中展示,我的思路是:
1.读取二进制流,写到内存中
byte[] imgData = new byte[1111];int length = 1111;//读取流并填充imgDataMemoryStream myStream = new MemoryStream();for (int i = 0; i < length; i++){myStream.WriteByte(imgData[i]);}
2.将二进制流转换为图片并绑定到控件中
Image myImage = Image.FromStream(myStream);picCredentialsPhoto.Image = myImage;
3.生成jpg图片
_ImgStorePath = AppDomain.CurrentDomain.BaseDirectory + "img\\"+lblFileName.Text + ".jpg;//照片另存if (!File.Exists(_ImgStorePath)){File.Create(_ImgStorePath);}using (Bitmap bmp = new Bitmap(picCredentialsPhoto.Image.Width, picCredentialsPhoto.Image.Height)){Graphics g = Graphics.FromImage(bmp);//实例一个画板的对象,就用上面的图像的画板g.DrawImage(picCredentialsPhoto.Image, 0, 0);//把目标图像画在这个图像文件的画板上using (MemoryStream mem = new MemoryStream()){bmp.Save(_ImgStorePath, System.Drawing.Imaging.ImageFormat.Jpeg);}}
代码执行到bmp.Save(_ImgStorePath, System.Drawing.Imaging.ImageFormat.Jpeg); 时抛出异常“GDI+中发生一般性错误”。
解决办法:
经过调试及多次测试,发现问题在我创建文件那一步,我在创建文件时把图片文件也创建好了,之后再区保存图片的时候就出错了,正确代码如下:
//区别开始_ImgStorePath = AppDomain.CurrentDomain.BaseDirectory + "img\\";if (!Directory.Exists(_ImgStorePath)){Directory.CreateDirectory(_ImgStorePath);}_ImgStorePath += lblVisNumber.Text + ".jpg";//区别结束using (Bitmap bmp = new Bitmap(picCredentialsPhoto.Image.Width, picCredentialsPhoto.Image.Height)){Graphics g = Graphics.FromImage(bmp);//实例一个画板的对象,就用上面的图像的画板g.DrawImage(picCredentialsPhoto.Image, 0, 0);//把目标图像画在这个图像文件的画板上using (MemoryStream mem = new MemoryStream()){bmp.Save(_ImgStorePath, System.Drawing.Imaging.ImageFormat.Jpeg);}}
这样就不会报错了
别的同仁有可能是因为其他原因报错的,只是记录一下个人遇到的问题!有需要可借鉴
GDI+中发生一般性错误的解决办法相关推荐
- GDI+中发生一般性错误的解决办法 from http://www.cnblogs.com/winzheng/archive/2008/12/23/1360440.html...
GDI+中发生一般性错误的解决办法 这个错误经常发生,代码如下: private static byte[] GetBytes (Image image) { ...
- GDI+中发生一般性错误的解决办法(转帖)
今天在开发.net引用程序中,需要System.Drawing.Image.Save 创建图片,debug的时候程序一切正常,可是发布到IIS后缺提示出现"GDI+中发生一般性错误" ...
- 图像对象paip.Image对象出现“对象当前正在其他地方使用或者GDI+中发生一般性错误的解决...
本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~ paip.Image对象现出"对象以后正在其他地方用使或者GDI+中产生一般性误错的决解 作者Attilax , ...
- C#界面设计--5--Bitmap.save保存图片时: GDI+ 中发生一般性错误 解决办法
Bitmap.save保存图片时: GDI+ 中发生一般性错误 解决办法 源程序: var date = DateTime.Now.ToString("yyyy-MM-dd");/ ...
- GDI+ 中发生一般性错误(生成验证码时出现的错误)
我在生成验证码时,出现这样的错误:GDI+ 中发生一般性错误. 怎么解决? 转载于:https://www.cnblogs.com/happyangle/archive/2008/06/11/1217 ...
- GDI+中发生一般性错误
在PictureBox中有一副图,希望保存成图片,用 pictureBox1.Image("c:\\aa.jpg",System.Drawing.Imaging.ImageForm ...
- GDI+ 中发生一般性错误
使用Chartlet时打开页面跳出以下错误: "/"应用程序中的服务器错误. GDI+ 中发生一般性错误. 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息 ...
- Image.Save()发生“GDI+ 中发生一般性错误”
从数据库中读取的图片是byte[]类型,将其转换成Image可以正常显示,但是调用image.Save()时会发生"GDI+ 中发生一般性错误". public static Sy ...
- GDI+中发生一般性错误 以及发布时候需要配置的文件
mxcms在本地测试完毕.搬家到服务器上,修改测试数据新闻的时候,提示"GDI+中发生一般性错误". 找了下,发现是缩略图的原因. 解决方法:将缩略图文件夹里的文件全部删除. fi ...
最新文章
- 重磅推荐:中国人工智能趋势报告(完整版)
- linux系统的sudo apt-get命令大全
- 59. Leetcode 81. 搜索旋转排序数组 II(二分查找-局部有序)
- DVB-C系统中QAM调制与解调仿真
- 反问疑问_句子练习大全(反问、疑问、设问、病句等练习)
- OpenCV与FLANN的功能匹配
- CSS实例:图片导航块
- typeorm mysql_从零搭建项目 (10) --- 后端: 使用 TypeORM 和 MySQL
- java 泛型详解、Java中的泛型方法、 java泛型详解
- 盒子模型阴影设置,爱奇艺阴影配置
- 选择适合自己的 OLAP 引擎,干货
- 【小项目】Axios 实现前后端交互
- PUT 还是 POST ?
- Flutter格式化电话号码
- linux内核编程4部曲之二:增加linux内核系统调用
- xp系统怎样安装传真服务器,如何安装windows xp传真服务器
- 矩阵开根号,工作矩阵平方根
- android控件Recy,Android RecyclerView控件的使用
- 《文明六:Sid Meier's Civilization VI 》的介绍
- Quasi_Binary(模拟)
热门文章
- java object类_快速上手 Kotlin 开发系列之与 Java 互调 (1)
- 如何用python画长方形_Python如何绘制长方形
- ARM C/C++编译器
- html5前端Video视频标签和audio音频标签的使用
- 泛微E-Mobile4.5服务端安装手册
- 谐波?到底怎么理解?这次是明白了!
- 4.Git基本命令操作
- 计算机软件科学专利,计算机软件专利有哪些
- 华为无线-AC+AP小型无线网络配置实验_v1
- 云南大学软件学院java实验九_云南大学软件学院Java实验二