C#中图片.BYTE[]和base64string的转换

摘要:
因为图像可以直接转换为字节[]并存储在数据库中。如果使用base64string,则需要将其从byte[]转换为base64string。

在C#中      

   图片到byte[]再到base64string的转换:

               Bitmap bmp = new Bitmap(filepath);
                MemoryStream ms = new MemoryStream();
                bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
                byte[] arr = new byte[ms.Length];
                ms.Position = 0;
                ms.Read(arr, 0, (int)ms.Length);
                ms.Close();
            string     pic = Convert.ToBase64String(arr);

 base64string到byte[]再到图片的转换:

                      byte[] imageBytes = Convert.FromBase64String(pic);
                    //读入MemoryStream对象
                    MemoryStream memoryStream = new MemoryStream(imageBytes, 0, imageBytes.Length);
                    memoryStream.Write(imageBytes, 0, imageBytes.Length);
                    //转成图片
                    Image image = Image.FromStream(memoryStream);

现在的数据库开发中:图片的存放方式一般有CLOB:存放base64string

                                                                       BLOB:存放byte[]

 一般推荐使用byte[]。因为图片可以直接转换为byte[]存放到数据库中

若使用base64string 还需要从byte[]转换成base64string 。更浪费性能。

免责声明:文章转载自《C#中图片.BYTE[]和base64string的转换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇比较语义分割的几种结构:FCN,UNET,SegNet,PSPNet和Deeplabjava面试问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

pl/sql中的取模运算

pl/sql语言的取模(即求余)运算不使用大部分语言所支持的a%b而是使用函数mod(a,b)例子如下:写一个匿名块判断某年是否是闰年,能被4但是不能被100整除,或者能被400整除1declare2judgevarchar2(200);3year_inputnumber;4begin5year_input:='&输入年份';6if(mod(year...

VMware vSphere 7.0 安装教程

插入CD,启动系统并等待安装包加载映像,按Enter等待协议条款,同意,然后按F11进行磁盘分区管理。由于测试环境的原因,只有一个硬盘,直接按Enter键进入键盘布局,选择默认设置,按Enter键设置根帐户的密码,输入完成后按Enter键确认安装,按F11键等待安装完成,取出安装CD,重新启动后按Enter重新启动系统,正在加载到系统中…请确保已导入磁盘。错...

Mysql 查询以某个字符开头的语句

为了查询以某个字符开头的数据,MySQL中经常使用它。常见的语句如下:以查询文章标题以单词“positive”开头的语句为例:使用通配符:1SELECT*FROM`article`,其中title类似于“positive%”;使用左函数:使用字符串截断函数:1SELECT*FROM`article`其中substring(title,1,1)='positi...

Swift开发中 JSON对象/JSON字符串/Data的互转

本文将介绍常见的转换#pragmark JSON(object)------˃JSON string 1,原生方法//JSON------˃data------˃JSON string letdata=try?JSON序列化。data#pragmark数据------˃JSON(对象)1.本机方法guardletarray=try?[[String:AnyO...

go语言游戏服务端开发(一)——架构

本教程以Go语言为例。特别是游戏服务进程有更新上线时,稳定性还没有被线上并发验证,宕机的几率会增加,数据丢失的风险也会增加。为了减轻风险,可以考虑把数据缓存跟服务进程分离。对于轻中度游戏,游戏的通信量不会很多,没必要每个分服都有一个长连接socket网关。假设一个分服同时连接服务器的客户端有5k,一台机器的socket网关能支持5w个玩家。因此网关需要参与服...

网站使用微信扫码登录流程

微信扫码登录是一个标准的oauth2.0的过程。...