在 C# 中将 Base64 字节数组解码为图像
Posted
技术标签:
【中文标题】在 C# 中将 Base64 字节数组解码为图像【英文标题】:decode Base64 byte Array to Image in C# 【发布时间】:2013-01-12 20:55:52 【问题描述】:我正在 android 中制作一个小型应用程序,用于浏览图库中的图像或从相机中拍照。然后将所选图像压缩并上传到服务器。我在 android 中使用 Base64 String 压缩了图像,为了上传图像,我在 ASP.NET 中创建了一个 Web 服务。但我不确定如何将字符串(在android中使用Base64转换)解码为图像(网络服务应该能够转换它)。请帮帮我。
提前致谢
【问题讨论】:
只是出于好奇-您确定您的Base64
转换后的压缩文件实际上比原始Jpeg 小吗?如果我是你。我宁愿只使用POST
文件请求,让标准的Gzip 压缩尽其所能。这将节省客户端和服务器的处理能力,我强烈怀疑它也会节省带宽。
我不确定 Base64 字符串是否更小。请帮助我了解压缩图像的最佳方法,上传压缩文件以及如何将上传的图像转换为相同的图像。请不要给我发送链接,我已经尝试了所有链接..
嗯,我真的很困惑有人如何“尝试所有链接”。也就是说,上传图片最简单的方法是***.com/a/7163513/17028(Android 客户端代码)和haacked.com/archive/2010/07/16/…(ASP.NET 服务器代码,因此请忽略该帖子中的任何 html)
【参考方案1】:
您可以通过Image.FromStream 将base64string 转换为图像。您需要先将 base64 字符串转换为流。
byte[] imageBytes = Convert.FromBase64String(imgBase64String);
Image img = null;
using (MemoryStream ms1 = new MemoryStream(imageBytes))
img = Image.FromStream(ms1);
if (img != null)
// ...
【讨论】:
以上是关于在 C# 中将 Base64 字节数组解码为图像的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ios 中将 Base64 编码的 NSString 转换为字节数组(Java)?
我们可以在 Java 中将字节数组转换为 InputStream 吗?