在C#中将Base64字节数组解码为图像

6
我正在制作一个小型的Android应用程序,可以从相册中浏览图像或从相机拍摄照片。然后,所选图片会被压缩并上传到服务器。我使用Base64字符串在Android上压缩了图像,并为上传图像创建了一个ASP.NET Web服务。但我不确定如何解码字符串(在Android中使用Base64转换的)成图像(Web服务应该能够将其转换)。请帮助我。

感谢提前


2
只是出于好奇 - 你确定你的Base64转换压缩文件比原始Jpeg文件更小吗?如果我是你,我会满足于仅使用POST文件请求,并让标准的Gzip压缩尽其所能。这将节省客户端和服务器的处理能力,并且我强烈怀疑它也会节省带宽。 - Franci Penov
我不确定Base64字符串是否更小。请帮我找出最佳压缩图像的方法,上传压缩后的图像,并将上传的图像转换为相同的图像。请不要发送链接,我已经尝试过所有链接了。 - user1909177
嗯,我真的很困惑,有人怎么可能“尝试所有链接”。话说,上传图像最简单的方法是使用https://dev59.com/-FrUa4cB1Zd3GeqPk4x5#7163513(Android客户端代码)和http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx(ASP.NET服务器代码,因此忽略该帖子中的任何HTML)。 - Franci Penov
1个回答

6

您可以通过Image.FromStream将base64字符串转换为图像。您需要先将base64字符串转换为流。

byte[] imageBytes = Convert.FromBase64String(imgBase64String);
Image img = null;

using (MemoryStream ms1 = new MemoryStream(imageBytes))
{
     img = Image.FromStream(ms1);
}

if (img != null)
{
  // ...
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接