在使用 C# 解码 Base64 字符串之前,是否删除了数据:image/jpeg;base64?
Do you remove the data:image/jpeg;base64, before decoding Base64 string using C#?
我正在尝试转换从 canvas 元素的重新调整大小的图像生成的 Base64 编码字符串,并且在使用 Convert.FromBase64()
The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.
编码数据看起来像这样以 =
开始和结束
data:image/jpeg;base64,/...=
我不太明白的是,当我执行 Convert.FromBase64() 时,我是否需要去掉 data:image/jpeg;base64,[=27= 的前缀] 然后解码余数?
我用来解码的代码如下所示
string base64String = newinput.Value.ToString();
// Convert Base64 String to byte[]
byte[] imageBytes = Convert.FromBase64String(base64String);
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
// Convert byte[] to Image
ms.Write(imageBytes, 0, imageBytes.Length);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);
string newFile = Guid.NewGuid().ToString() + ".jpg";
image.Save(Path.Combine(Server.MapPath("~/Assets/") + Request.QueryString["id"] + "/", newFile), ImageFormat.Jpeg);
基本上,我将字符串转换为图像并保存在服务器上。如您所见,我正在使用 C#
有什么想法吗?
do I need to strip off the prefix of data:image/jpeg;base64, and then decode the remainder?
是的 - 前缀不是 base64 编码的文本,它只是说其余的 是 base64 编码的(以及 mime 类型是什么)。
我们不确切知道您是如何获取数据的,但是您应该首先检查数据 URL 是 声称是 base64 编码的,请注意.
我正在尝试转换从 canvas 元素的重新调整大小的图像生成的 Base64 编码字符串,并且在使用 Convert.FromBase64()
The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.
编码数据看起来像这样以 =
开始和结束data:image/jpeg;base64,/...=
我不太明白的是,当我执行 Convert.FromBase64() 时,我是否需要去掉 data:image/jpeg;base64,[=27= 的前缀] 然后解码余数?
我用来解码的代码如下所示
string base64String = newinput.Value.ToString();
// Convert Base64 String to byte[]
byte[] imageBytes = Convert.FromBase64String(base64String);
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
// Convert byte[] to Image
ms.Write(imageBytes, 0, imageBytes.Length);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);
string newFile = Guid.NewGuid().ToString() + ".jpg";
image.Save(Path.Combine(Server.MapPath("~/Assets/") + Request.QueryString["id"] + "/", newFile), ImageFormat.Jpeg);
基本上,我将字符串转换为图像并保存在服务器上。如您所见,我正在使用 C#
有什么想法吗?
do I need to strip off the prefix of data:image/jpeg;base64, and then decode the remainder?
是的 - 前缀不是 base64 编码的文本,它只是说其余的 是 base64 编码的(以及 mime 类型是什么)。
我们不确切知道您是如何获取数据的,但是您应该首先检查数据 URL 是 声称是 base64 编码的,请注意.