C#Base64转图片报参数无效 50C

byte[] arr = Convert.FromBase64String(inputStr);
MemoryStream ms = new MemoryStream(arr ,0, arr.Length);
Bitmap bmp = new Bitmap(ms);
bmp.Save(ConfigData.IDCardPath + ID + ".jpg", ImageFormat.Jpeg);

                    这一句报参数无效的错误:Bitmap bmp = new Bitmap(ms);

                    网上看到都是这么做的,求教各路大神啊

3个回答

MemoryStream ms = new MemoryStream(arr ,0, arr.Length);

==>改下面的试试,而且你的inputStr格式是否正确。。。不包含data:images/gif;这个数据

MemoryStream ms = new MemoryStream(arr);

showbo
支付宝加好友偷能量挖 回复hangjymoyu: 是不是接口返回的数据用了什么算法压缩过的吧,不是原始的base64字符串
接近 4 年之前 回复
showbo
支付宝加好友偷能量挖 回复hangjymoyu: 如果没包含那就是给接口返回的base64字符串有问题了。。解码图片base64代码就是这样的。。
接近 4 年之前 回复
hangjymoyu
hangjymoyu 回复无聊码农: 是别人的接口给的base64字符串,没有data:images/gif;
接近 4 年之前 回复
showbo
支付宝加好友偷能量挖 回复hangjymoyu: 你确认base64的图片数据是正确的没有?base64从哪里搞来的,如果是客户端html img的src加载的base64字符串内容,默认是有data:images/gif;前缀的
接近 4 年之前 回复
hangjymoyu
hangjymoyu MemoryStream ms = new MemoryStream(arr);也会报同样的错,不包含data:images/gif;这个数据是什么意思啊
接近 4 年之前 回复

arr是不是null啊
你那个字符串是不是图片的base64要弄清楚啊。

试试这段代码:

byte[] buffer = Convert.FromBase64String(headImg);
MemoryStream ms = new MemoryStream(buffer);
Bitmap bmp = Image.FromStream(ms) as Bitmap;

string filePath = "C:/File/test.png"
DirectoryInfo TheFolder = new DirectoryInfo(filePath);
if (!TheFolder.Exists)
{
Directory.CreateDirectory(filePath);
}
bmp.Save(filePath);

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问