使用 Javascript,我正在对 WCF 服务进行 AJAX 调用,它返回一个字节数组。如何将其转换为图像并将其显示在网页上?
原文由 KevinDeus 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 Javascript,我正在对 WCF 服务进行 AJAX 调用,它返回一个字节数组。如何将其转换为图像并将其显示在网页上?
原文由 KevinDeus 发布,翻译遵循 CC BY-SA 4.0 许可协议
以下是使用数据 URI 方案解码 PNG、JPEG 和 GIF 图像字节的 JavaScript 源代码:
Images.decodeArrayBuffer = function(buffer, onLoad) {
var mime;
var a = new Uint8Array(buffer);
var nb = a.length;
if (nb < 4)
return null;
var b0 = a[0];
var b1 = a[1];
var b2 = a[2];
var b3 = a[3];
if (b0 == 0x89 && b1 == 0x50 && b2 == 0x4E && b3 == 0x47)
mime = 'image/png';
else if (b0 == 0xff && b1 == 0xd8)
mime = 'image/jpeg';
else if (b0 == 0x47 && b1 == 0x49 && b2 == 0x46)
mime = 'image/gif';
else
return null;
var binary = "";
for (var i = 0; i < nb; i++)
binary += String.fromCharCode(a[i]);
var base64 = window.btoa(binary);
var image = new Image();
image.onload = onLoad;
image.src = 'data:' + mime + ';base64,' + base64;
return image;
}
原文由 Adam Gawne-Cain 发布,翻译遵循 CC BY-SA 3.0 许可协议
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读
我意识到这是一个旧线程,但我设法通过 Web 服务上的 AJAX 调用做到了这一点,并认为我会分享……
我的“GetItemPreview”代码查询 SQL 服务器,我在其中将图像存储为 base64 字符串并返回该字段作为“结果”:
神奇之处在于这一行的 AJAX 调用:
享受!