javascript如何解析base64图片数据 并且将图片显示在网页中

最好是有详细的javascript解析base64的源代码(本人初学者请见谅),显示这一块儿 怎么获取javascript解析好的图片 麻烦各位大神了 急!急!急!

3个回答

var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars = new Array(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);

function base64encode(str) {
var out, i, len;
var c1, c2, c3;
len = str.length;
i = 0;
out = "";
while (i < len) {
c1 = str.charCodeAt(i++) & 0xff;
if (i == len) {
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt((c1 & 0x3) << 4);
out += "==";
break;
}
c2 = str.charCodeAt(i++);
if (i == len) {
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt((c2 & 0xF) << 2);
out += "=";
break;
}
c3 = str.charCodeAt(i++);
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));
out += base64EncodeChars.charAt(c3 & 0x3F);
}
return out;
}

function base64decode(str) {
var c1, c2, c3, c4;
var i, len, out;
len = str.length;
i = 0;
out = "";
while (i < len) {
/* c1 /
do {
c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
} while (i < len && c1 == -1);
if (c1 == -1)
break;
/
c2 /
do {
c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
} while (i < len && c2 == -1);
if (c2 == -1)
break;
out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
/
c3 /
do {
c3 = str.charCodeAt(i++) & 0xff;
if (c3 == 61)
return out;
c3 = base64DecodeChars[c3];
} while (i < len && c3 == -1);
if (c3 == -1)
break;
out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));
/
c4 */
do {
c4 = str.charCodeAt(i++) & 0xff;
if (c4 == 61)
return out;
c4 = base64DecodeChars[c4];
} while (i < len && c4 == -1);
if (c4 == -1)
break;
out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
}
return out;
}

这是javascript base64的编码和解码方法。

bulusli3
lhl_lqc 把两个字符串发送的时间延迟一会。
5 年多之前 回复
bulusli3
lhl_lqc 回复tangjunzuishuai: 把str1
5 年多之前 回复
tangjunzuishuai
tj_2525love 但是 我想实现 他们的轮流交替显示 因为对方就是轮流发送过来的 我这边 只看到str1闪了一下(而且是在刷新的瞬间)。我想实现 两个字符串交替显示在网页中 怎么弄啊
5 年多之前 回复
bulusli3
lhl_lqc 回复tangjunzuishuai: 服务端每次都是str1,str2,str1,str2这样轮流发送的吧?那最后肯定是固定在str2、
5 年多之前 回复
tangjunzuishuai
tj_2525love 服务器那边用for循环给我轮流发送 str1 和 str2 字符串 但是每次网页上只闪一下str1 后 就固定在了str2 我不明白为什么 e.data 明明是在变化的
5 年多之前 回复
tangjunzuishuai
tj_2525love 大神你看看我的代码吧 <script> ws = new WebSocket("ws://192.168.0.171:1235"); ws.onopen = function () { // alert("连接成功"); ws.send('tom'); // alert("给服务端发送一个字符串:tom"); } ws.onmessage = function (e) { document.getElementById('img').innerHTML= e.data;
5 年多之前 回复
bulusli3
lhl_lqc 回复tangjunzuishuai: 服务端传来时在接收的那个方法里做。
5 年多之前 回复
bulusli3
lhl_lqc 回复tangjunzuishuai: websocket就放在message的消息处理那个方法里做。
5 年多之前 回复
tangjunzuishuai
tj_2525love 我现在用的webSocket不知道可不可以 ajax我也是刚学 不是很明白 如果我用ajax 如何访问一个固定的端口 并且拿到数据 ?
5 年多之前 回复
bulusli3
lhl_lqc 回复tangjunzuishuai: 利用ajax可以实现啊。
5 年多之前 回复
tangjunzuishuai
tj_2525love 问题已经解决了 不过问题来了 我想实现 图片随服务器传过来实时更新(不刷新网页的情况 )
5 年多之前 回复
tangjunzuishuai
tj_2525love 问题已经解决了 不过问题来了 我想实现 图片随服务器传过来实时更新(不刷新网页的情况 )
5 年多之前 回复

http://ask.csdn.net/questions/173999

不需要解析,设置img的src为data:image/jpg;base64,base64数据就可以

wangchixiao
Jason_WangG 对,这样就可以了
5 年多之前 回复

或者用canvas

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐