图片保存为二进制流要转成BASE64的格式问题

时间:2022-06-10 08:32:42
我将图转换成二进制流保存于 数据库, 对应的内容是
0xFFD8FFE000104A46494600010101012C012C0000FFDB00430006040506050406060506070706080A100A0A09090A140E0F0C10171418181714161 。。。 。。。

但是当我把这个二进制流化成图片显示另存为JPG文件后通过网上的转换 http://www.fishlee.net/Tools/GetImageBase64Code#codeResult 

base64结果:/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2w 。。。 。。。

------------------------------------------------------------------------------------------------------------------------
好了,我们看一下 同样的JPG图,得到的 二进制流,与 base64 编码完全不同,

请问大家有什么办法, 帮我把我的二进制流 ,转成  base64编码?

7 个解决方案

#1


用Convert.ToBase64String转换

#2


大家再看我的代码

 string base64data = Request["picData"];   //取到的 base64 编码正确。
 byte[] picBytes = Convert.FromBase64String(base64data.Substring(1, base64data.Length - 2));
 string strCardNo = Request["CardNo"].ToString();
 model.PictureData = picBytes;      //保存进数据库二进制字段

 // 记录到照片记录表里去
bllPictureRecord.Add(model);

---------------------------------------------------------------------

如何将  model.PictureData 二进的字段内容, 转成   base64 格式串?     求解救解。。。。。

#3


引用 1 楼 Z65443344 的回复:
用Convert.ToBase64String转换


p1 = model.PictureData         //  value:  "FFD8FFE000104A4649................
 _feature1 = Convert.ToBase64String(p1);   //不成功  出错  byte[]类型。。。。。。。。

如何解?

#4


引用 1 楼 Z65443344 的回复:
用Convert.ToBase64String转换


   byte[] m64 = (Byte[])bllpict.GetModel(id).PictureData;
   string _feature1 = Convert.ToBase64String(m64);

还是不成功 , m64 字符串有  ,    返回的_feature1值,竟然为空。

不解呀,!  请求大师。。。。

#5


你数据库里直接保存base64字符串不好吗(按varchar2类型保存),来回转换它干什么

#6


引用 5 楼 Z65443344 的回复:
你数据库里直接保存base64字符串不好吗(按varchar2类型保存),来回转换它干什么


我就想还原数据库 (二进制大字段) 取出的0xFFD8FFE000104A46494600010101    。。。。。 还原到原始的、9j/4AAQSkZJRgABAQEBLAEsAAD  。。。。。。  

#7


还原不到原始的
因为你在一开始转换的时候就已经把字符串截断了
 Convert.FromBase64String(base64data.Substring(1, base64data.Length - 2));

#1


用Convert.ToBase64String转换

#2


大家再看我的代码

 string base64data = Request["picData"];   //取到的 base64 编码正确。
 byte[] picBytes = Convert.FromBase64String(base64data.Substring(1, base64data.Length - 2));
 string strCardNo = Request["CardNo"].ToString();
 model.PictureData = picBytes;      //保存进数据库二进制字段

 // 记录到照片记录表里去
bllPictureRecord.Add(model);

---------------------------------------------------------------------

如何将  model.PictureData 二进的字段内容, 转成   base64 格式串?     求解救解。。。。。

#3


引用 1 楼 Z65443344 的回复:
用Convert.ToBase64String转换


p1 = model.PictureData         //  value:  "FFD8FFE000104A4649................
 _feature1 = Convert.ToBase64String(p1);   //不成功  出错  byte[]类型。。。。。。。。

如何解?

#4


引用 1 楼 Z65443344 的回复:
用Convert.ToBase64String转换


   byte[] m64 = (Byte[])bllpict.GetModel(id).PictureData;
   string _feature1 = Convert.ToBase64String(m64);

还是不成功 , m64 字符串有  ,    返回的_feature1值,竟然为空。

不解呀,!  请求大师。。。。

#5


你数据库里直接保存base64字符串不好吗(按varchar2类型保存),来回转换它干什么

#6


引用 5 楼 Z65443344 的回复:
你数据库里直接保存base64字符串不好吗(按varchar2类型保存),来回转换它干什么


我就想还原数据库 (二进制大字段) 取出的0xFFD8FFE000104A46494600010101    。。。。。 还原到原始的、9j/4AAQSkZJRgABAQEBLAEsAAD  。。。。。。  

#7


还原不到原始的
因为你在一开始转换的时候就已经把字符串截断了
 Convert.FromBase64String(base64data.Substring(1, base64data.Length - 2));