当前位置: 首页 > Web前端 > JavaScript

图片src为二进制处理

时间:2023-03-27 01:50:49 JavaScript

引子请求图片,返回数据类型为二进制,需要显示图片。在OriginMyGitHub图片的src为二进制的场景下,首先想到的是图片的src为base64的情况。在了解了Base64之后,我觉得理论上是可行的。查询资料后,发现了类似的疑惑和问题。回复中提供的解决方案是:使用URL.createObjectURL()方法。使用window.btoa()方法。使用FileReader对象的readAsDataURL()方法。下面验证。方法URL.createObjectURL()URL对象用于解析、构造、规范化和编码URL(统一资源定位器)。它有两个静态方法:URL.createObjectURL():创建一个包含URL的DOMString,该URL表示传递给此方法的参数对象。此URL的生命周期与创建它的窗口中的文档相关联。这个新的URL对象代表指定的File对象或Blob对象。URL.revokeObjectURL():释放之前通过调用URL.createObjectURL()创建的现有URL对象。浏览器会在文档退出时自动释放它们,但为了获得最佳性能和内存使用,当您使用完URL对象时,您应该调用此方法让浏览器知道它不再需要保留该文件。引用。这是一个测试示例,扫描二维码访问如下。结果:方法可行。请参阅我可以使用createObjectURL吗?为了兼容性。window.btoa()方法从String对象创建一个base-64编码的ASCII字符串,其中字符串中的每个字符都被视为二进制数据的一个字节。对应的方法是window.atob(),对base-64编码的字符串进行解码。这是一个测试示例,扫描二维码访问如下。结果:出现InvalidCharacterError异常,方法不可行。尽管它在文档中说要先进行编码,但它不起作用。仔细想想这个方法的作用,是创建一个新的字符串,而不是恢复所有类型的原始数据。该方法的使用场景之一:使用该方法对可能导致通信问题的数据进行编码,传输,然后再次使用atob()方法对数据进行解码。请参阅我可以使用btoa吗?为了兼容性。readAsDataURL()FileReader对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用File或Blob对象指定要读取的文件或数据。它自己的方法readAsDataURL()开始读取指定Blob的内容。完成后,result属性将包含一个data:URL格式的字符串,表示读取的文件的内容。这是一个测试示例,扫描二维码访问如下。结果:方法可行。请参阅我可以使用FileReader吗?为了兼容性。ReferencesBlobFileURLbtoaFileReader