Javascript 如何将二进制数据显示为图像-extjs 4

Javascript 如何将二进制数据显示为图像-extjs 4,javascript,ajax,extjs,extjs4,Javascript,Ajax,Extjs,Extjs4,以下是有效的.JPEG图像的二进制文件。 我曾尝试使用Python将这些二进制数据保存到图像中 如何使用extjs 4将此数据转换为可查看的.JPEG图像 我试过了,但没用 data:image/jpeg;base64,+ binary data 需要在base64中转换它 JS为它提供了btoa()函数 例如: var img = document.createElement('img'); img.src = 'data:image/jpeg;base64,' + btoa('your-

以下是有效的.JPEG图像的二进制文件。

我曾尝试使用Python将这些二进制数据保存到图像中

如何使用extjs 4将此数据转换为可查看的.JPEG图像

我试过了,但没用

data:image/jpeg;base64,+ binary data

需要在base64中转换它

JS为它提供了btoa()函数

例如:

var img = document.createElement('img');
img.src = 'data:image/jpeg;base64,' + btoa('your-binary-data');
document.body.appendChild(img);
但我认为pastebin中的二进制数据是无效的——jpeg数据必须以“ffd9”结尾

更新:

需要将简单的十六进制写入base64转换器:

function hexToBase64(str) {
    return btoa(String.fromCharCode.apply(null, str.replace(/\r|\n/g, "").replace(/([\da-fA-F]{2}) ?/g, "0x$1 ").replace(/ +$/, "").split(" ")));
}
并使用它:

img.src = 'data:image/jpeg;base64,' + hexToBase64('your-binary-data');

请参见

上的十六进制数据工作示例。数据URI格式为:

数据:

因此,您只需将数据附加到“data:image/jpeg;,”字符串:


在前端JavaScript/HTML中,您可以将二进制文件作为图像加载,无需转换为base64:

<img src="http://engci.nabisco.com/artifactory/repo/folder/my-image">

我的图像是一个二进制图像文件。这将很好地加载。

在ExtJs中,您可以使用

xtype:'图像'

渲染图像

下面是一个用extjs呈现二进制数据的提琴

atob-->将ascii转换为二进制

btoa-->将二进制转换为ascii

Ext.application({
    name: 'Fiddle',

    launch: function () {
        var srcBase64 = "data:image/jpeg;base64," + btoa(atob("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8H8hYDwAFegHS8+X7mgAAAABJRU5ErkJggg=="));

        Ext.create("Ext.panel.Panel", {
            title: "Test",
            renderTo: Ext.getBody(),
            height: 400,
            items: [{
                xtype: 'image',
                width: 100,
                height: 100,
                src: srcBase64
            }]
        })
    }
});

ya.二进制数据以ffd9结尾,忽略00字节我已经删除了00字节的结尾,但仍然无法工作,无法显示图像谢谢@Vlad!我从未在google.com上找到过这种解决方案,非常感谢!JSFIDLE正是我所需要的感谢小提琴!问题是当图像不在文件中时显示该图像。这是关于显示二进制数据
Ext.application({
    name: 'Fiddle',

    launch: function () {
        var srcBase64 = "data:image/jpeg;base64," + btoa(atob("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8H8hYDwAFegHS8+X7mgAAAABJRU5ErkJggg=="));

        Ext.create("Ext.panel.Panel", {
            title: "Test",
            renderTo: Ext.getBody(),
            height: 400,
            items: [{
                xtype: 'image',
                width: 100,
                height: 100,
                src: srcBase64
            }]
        })
    }
});