我正在使用 javascript 从客户端发送 base64 编码图像(我正在使用http://supa.sourceforge.net/为 asp.net 应用程序创建屏幕截图上传器小程序),这会向服务器发送一个 ajax 请求以存储图像。在服务器上,我在 asp.net 应用程序的 GenericHanlder 中使用 HttpContext。
如何将图像数据从 HttpContext 转换为服务器上的图像?
我正在使用 javascript 从客户端发送 base64 编码图像(我正在使用http://supa.sourceforge.net/为 asp.net 应用程序创建屏幕截图上传器小程序),这会向服务器发送一个 ajax 请求以存储图像。在服务器上,我在 asp.net 应用程序的 GenericHanlder 中使用 HttpContext。
如何将图像数据从 HttpContext 转换为服务器上的图像?
首先,您需要将基数 64 转换回字节:
byte[] data = System.Convert.FromBase64String(fromBase64);
然后,您可以将其加载到 Image 的实例中:
MemoryStream ms = new MemoryStream(data);
Image img = Image.FromStream(ms);
如果要将其保存到文件中,请使用System.IO.File.WriteAllBytes
我需要做类似的事情,但想直接使用 InputStream,所以用它来进行解码:
// using System.Security.Cryptography
var stream = new CryptoStream(Request.InputStream, new FromBase64Transform(), CryptoStreamMode.Read);
var img = Image.FromStream(stream);