我有两个申请。其中一个是基于HTML的Web应用程序,它在IE9模式下工作,并通过XDomainRequest以base64字符串格式接收扫描文档的图像。
另一个应用程序是用C#编写的Windows服务。它通过HttpListener侦听端口上的请求。然后它扫描文档并通过HttpListenerResponse发送扫描图像。
扫描的图像将由客户端的Web应用程序处理,然后将上载到服务器。所以我必须在javascript中完成所有工作。没有服务器端解决方案(暂时)。
如果我只收到一张图片,这不是一个大问题。但是如果发送方发送多个图像,则base64字符串变得太大而且需要花费太多时间。
我使用下面的代码将图像转换为base64字符串:
public static string ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format)
{
using (MemoryStream ms = new MemoryStream())
{
image.Save(ms, format);
byte[] imageBytes = ms.ToArray();
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
以下代码用于接收图片:
if (xdrScanning.responseText != "") {
try {
json = JSON.parse(xdrScanning.responseText);
$('#scannedImage').attr('src', 'data:image/png;base64, ' + json[0].BASE64IMAGE);
} catch (e) {
xdrScanningError();
}
}
据我所知,XDomainRequest仅接收字符串响应。
那么,我该怎么做才能克服性能问题呢?