itRef.cn技术参考网站

当前位置: 主页 > JS >

js操作图片二进制流

时间:2010-09-27 11:48来源:未知 作者:wiwi 点击:
问题描述: 最近一个项目,有一个平台,主要是为手机客户端提供接口数据,接口中包含有图片信息,后来领导要求在此平台开发widget。查看平台接口文档,了解到图片是通过二进制数据流存储在数据库中,图片的二进制流数据对应的ascii字符跟在XML数据接口后面,

 

问题描述:

最近一个项目,有一个平台,主要是为手机客户端提供接口数据,接口中包含有图片信息,后来领导要求在此平台开发widget。查看平台接口文档,了解到图片是通过二进制数据流存储在数据库中,图片的二进制流数据对应的ascii字符跟在XML数据接口后面,混合其它数据一同下发。

后来在网上的到一个信息,在大部分浏览器中,支持data协议显示图片,其格式如下:

 <img src="data:image/jpg;base64,..." /> 省略号为图片base64编码
 

经过多次尝试,发现js无法通过图片二进制流转换后的ascii字符原样还原其二进制数据,导致图片最终无法显示。

问题原因:

经过比较图片在客户端的ascii编码,与服务端的ascii编码,发现:图片二进制流的ascii部分字符在客户端返回的ascii编码都为 65533,而服务端却对应多个值,说明这些字符是不可识别的,不能一对一的还原其ascii编码,所以导致二进制数据流失真,导致图片还原失败。这也是为什么使用文本打开图片再保存后,图片无法显示的原因。

解决方法:

1. 平台下发图片的访问地址
2. 平台接口下发图片的base64编码

(责任编辑:wiwi) 转载请注明 来源于itRef.cn技术参考网站:
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容