在XML、文本文件 中存储图片的解决方案
来源:互联网 发布:python爬虫工程师招聘 编辑:程序博客网 时间:2024/05/29 15:47
最近做了个基于CF 2.0上开发的手机程序,当中有一个功能是图片存储,感觉用数据库(SQL CE)存储的话过于复杂和麻烦。同时效率也会降低,不景它是手机,呵呵!为了得到更好移植和方便,我这次使用了二进制+Base64编码形式存储,顺便帖上来,希望对需要的人有点帮助!
思想:图片先转换为 二进制文件 再经 Base64编码 存储在文件中的,由于转换成二进制文件后,数据存储空间变大,利用Base64具有的压缩空间优势,使转换后的文本数据只是原数据大小的4/3倍(大概),图片量大的话,节省不少内存空间。同理,通过原先Base64编码过的文本数据解码成二进制文件后再转换为图片对象。
代码如下:
- //using System.IO;
- //using System.Drawing;
- //using System.Drawing.Imaging;
- //图片转换为字符串
- private string ImageToString(Image img, string ImgFormat)//参数ImgFormat是指定图片的类型
- {
- //定义一个内存流对象
- try
- {
- using (MemoryStream memoryStream = new MemoryStream())
- {
- //把Image以ImageFormat图片类型保存为二进制格式
- img.Save(memoryStream, ReImgFormat(ImgFormat));
- //定义b存放二进制数据
- byte[] b = memoryStream.GetBuffer();
- //将二进制数据转换为Base64编码字符串
- string PicString = Convert.ToBase64String(b);
- //关闭内存流和清空变量
- memoryStream.Close();
- b = null;
- //返回转换后的字符串
- return PicString;
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- return ""; //返回空字符串
- }
- }
- //字符串转换为图片
- private Image StringToImage(string PicString)
- {
- if (PicString.Equals(""))
- {
- //字符串为空的时候返回空对象
- return null;
- }
- else
- {
- try
- {
- using (MemoryStream memoryStream = new MemoryStream(Convert.FromBase64String(PicString)))
- {
- Image img = new System.Drawing.Bitmap(memoryStream);
- memoryStream.Close();
- return img;
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- return null; //返回空对象
- }
- }
- }
- //返回图片的类型对象
- private ImageFormat ReImgFormat(string imgformat)
- {
- switch (imgformat.ToLower())
- {
- case "jpg":
- return ImageFormat.Jpeg;
- case "gif":
- return ImageFormat.Gif;
- case "bmp":
- return ImageFormat.Bmp;
- case "png":
- return ImageFormat.Png;
- //没有指定类型默认Jpeg
- default:
- return ImageFormat.Jpeg;
- }
- }
- 在XML、文本文件 中存储图片的解决方案
- 如何在xml中存储图片(从一个论文中截下来的)
- 系统中图片存储的解决方案——将图片放在服务器上,将其路径存入数据库
- 图片以二进制形式存储到文本文件中以及读取
- 文本文件中存储
- 利用XML的序列化器来存储一些文本文件
- 各种类型文件在SQL Server中存储的解决方案
- 各种类型文件在SQL Server中存储的解决方案
- 在网页制作中,图片间有间隙的解决方案
- 在 DB2 中存储行业 XML 内容的快速方法
- 文本文件和二进制文件在存储时的区别
- 将文本文件的内容存储在DataSet中的方法总结
- 使用Java实现在SQLserver中实现图片的存储
- 使用Java实现在SQLserver中实现图片的存储
- 使用Java实现在SQLserver中实现图片的存储
- 使用Java实现在SQLserver中实现图片的存储
- 关于存储图片,oracle.sql.blob在jndi连接池环境下转化异常的解决方案
- 数据库存储图片解决方案
- 2008-7-31
- 出现“unresolved external symbol @__security_check_cookie@4”的解决方法
- 正则表达式提取HTML页面的特定部分
- 我了解的西安软件外包业务
- 新点子:给驾车人节省时间金钱和减少烦恼
- 在XML、文本文件 中存储图片的解决方案
- 山寨机将成手机电视最大受益者
- 学习的榜样,进步的力量(来自中国人才热线的简历)
- 在window xp下安装Tornado
- Ubuntu8.04如何修改默认文件关联打开程序
- iPower虚拟主机评测
- 英文論文好幫手
- 跑步进入第二周
- 项目今天答辩完了