2013-01-14 48 views
0

我使用javascript显示图像在HTML自带的base64从WS。在编码少数情况下我得到了pnggifjpg格式的图片和想要在相同的<img src= >标签中显示它们。显示器上不同的格式之一IMG SRC标签普通图像和Base64图像

$("#testImage").append("<img src=\"data:image/png;base64," +imgSRC+"">); 

其中imgSRC是base64图像。

1.如何使用一个<img src>标签在同一个img src标签上显示base64图像和普通图像?或当我现在返回imgSRCjpg/png ...图像时更改此标记。例如,当我得到的图像的返回值,如果它base64或正常: append("<img src=\"data:image/png;base64," +checkImageFormat(imgSRC)+"">);

我怎样才能通过checkImageFormat(imgSRC)改变当前对象的IMG SRC标记的结果呢?

+0

看到这个博客帖子:http://danielmclaren.com/node/90。基本上在FF,是的,你可以。在IE中,您需要解码服务器上的base64,并使用正确的内容类型标题返回它。 –

+0

请检查本教程:http://blog.team-noir.net/2010/03/how-to-use-images-base64-encoded-inline-an-img-tag/ – OMG

+0

谢谢,这些教程解释如何设置'base64'图像的数据属性...这很好,我问的是当我有'',我得到'imgSRC'为正常图像,如何将此行更改为:''因为它的属性与“”分开,我不能只是删除该属性,因为它看起来像:'' –

回答

3

我建议在数据库中存储“data:image/png; base64”部分(或者任何源代码)。这样你就不必检查。

另一种解决方案可能是这样的:

$(function(){ 

    var $img = $('<img/>') 
        .attr({ src: 'data:image/png;base64,' + imgSrc }) 
        .error(function(){ 
         $(this).attr({ src: imgSrc }); 
         //If we end up here the image couldn't be loaded 
         //If so, we assume that its a jpeg/png/gif 
        }); 

    $("#testImage").append($img); 

});