How to display base64 encoded image in HTML if it is located in a separated file?

后端 未结 4 961
悲哀的现实
悲哀的现实 2020-12-14 12:02

I have base64 encoded image. If I put it right into html it works:


But when I put all that b

相关标签:
4条回答
  • 2020-12-14 12:27

    I did something similar for my final year project at university, i was using XML doc's to link to a page and show the images in a canvas element. I made it so the image was searched for a variable, then assigned the variable with base 64 encoded image like so:

    xmlDoc=loadXMLDoc("test.xml");
    
    x=xmlDoc.getElementsByTagName("image");
    txt=x[1].childNodes[0].nodeValue;
    document.write(txt);
    
    var card1 = txt;
    var c=document.getElementById("myCanvas");
    var ctx=c.getContext("2d");
    var img=new Image();
    img.onload = function(){
        ctx.drawImage(img,0,0);
    };
    img.src= card1;
    
    0 讨论(0)
  • 2020-12-14 12:42

    You can simply take on server side approach and just print the file into the src part of the img tag like so:

    <img src="<?php echo file_get_contents('some/path/image.txt');?>"
    

    Where your image.txt contains i.e.: data:image/png;base64,...

    0 讨论(0)
  • 2020-12-14 12:46

    You would need to send the correct Content-type, Content-encoding and charset HTTP headers along with the file. Note that they are all part of the data: URI schema as well. You really should have a charset=utf-8 or similar clause between the content-type and the encoding:

    url(data:image/png;charset=utf-8;base64,...);
    
    0 讨论(0)
  • 2020-12-14 12:51

    You cannot do that, I believe. The first syntax corresponds to a pseudo protocol (scheme) data: that means that the data is not to be fetched from somewhere outside, but from the attribute string itself. As the "data" is in general binary, and the attribute is text, base64 is commonly used.

    But when the data is fetched from outside the page (http server, or local filesystem), the data must come in raw (binary) form.

    You could do it with some javascript work, of course.

    0 讨论(0)
提交回复
热议问题