当前位置: 代码迷 >> ASP.NET >> 这是一张图片,页面下面的,怎么把图片生成src=后面那些代码
  详细解决方案

这是一张图片,页面下面的,怎么把图片生成src=后面那些代码

热度:2052   发布时间:2013-02-25 00:00:00.0
这是一张图片,,页面上面的,如何把图片生成src=后面那些代码
<img src="data:;base64,R0lGODlhHgAeALMAAAAAAPb29omqyuJ1BBx5vllAUO7GXRAMFESu5hRZhRwgdbJQCO7///bu9r3/AAAAACH+HUJ1aWx0IHdpdGggR0lGIE1vdmllIEdlYXIgMy4wACH5BAEKAA4ALAAAAAAdAB4AAAT+0MkpARKCpATA7CAlVgSWbRyodiNlYYi2rSHbAsQVo3MVtp/cLvXzeYAOyw5waDaPLmQSEQM0AgUnVOqiEqwBwYHG/VQTjcY4wA40BNtbp1oQt++Y+OeF+x4KAG2BbG8cI0owGkyAbIOEAj1mFwJLTI4dbW+QW4iVHQeNoY+GXQSKn3+iAY6QYzUyHGwCBQmqNCtGmJmhtypAKleNABgJCk9FSESBmsUKHZFIHQrTJpDNw9CHw5DTCjzT28qHbhjTY03ggZsD7Atx4eDsA+6BDHAA7B3uI65MBwYG2tHDl2+BQT0iDgwAKHBBO1xS8AEMKO8hwlwqDhg0KNDGjYoUCyfK20gvorxet7ioIOkQ5ICLEQAAOw==" />

 
 

------解决方案--------------------------------------------------------
Javascript 没有内置 base64_encode 和 base64_decode 函数

function utf8_decode(str_data) {
var tmp_arr = [], i = 0, ac = 0, c1 = 0, c2 = 0, c3 = 0;
str_data += '';
while(i < str_data.length) {
c1 = str_data.charCodeAt(i);
if(c1 < 128) {
tmp_arr[ac++] = String.fromCharCode(c1);
i++;
}
else if(c1 > 191 && c1 < 224) {
c2 = str_data.charCodeAt(i + 1);
tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
i += 2;
}
else {
c2 = str_data.charCodeAt(i + 1);
c3 = str_data.charCodeAt(i + 2);
tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return tmp_arr.join('');
}

function base64_decode(data) {
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, dec = "", tmp_arr = [];
if(!data) {
return data;
}
data += '';
do {
h1 = b64.indexOf(data.charAt(i++));
h2 = b64.indexOf(data.charAt(i++));
h3 = b64.indexOf(data.charAt(i++));
h4 = b64.indexOf(data.charAt(i++));
bits = h1 << 18 | h2 << 12 | h3 << 6 | h4;
o1 = bits >> 16 & 0xff;
o2 = bits >> 8 & 0xff;
o3 = bits & 0xff;
if(h3 == 64) {
tmp_arr[ac++] = String.fromCharCode(o1);
}
else if(h4 == 64) {
tmp_arr[ac++] = String.fromCharCode(o1, o2);
}
else {
tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);
}
} while(i < data.length);
dec = tmp_arr.join('');
dec = this.utf8_decode(dec);
return dec;
}

window.onload = function() {
var img_src = document.getElementsByTagName('img')[0].getAttribute('u');
alert(base64_decode(img_src));
// 输出 http://img04.taobaocdn.com/bao/uploaded/i4/T1NM02XgldXXXXTIE._081535.jpg
}
------解决方案--------------------------------------------------------
应该是图片转换为二进制的,然后用base64得到显示的字符。
在前面有“data:;base64”这段,应该浏览器自己会用base64去解析吧...
  相关解决方案