当前位置:首页 > JavaScript

js实现二进制流转图片

2026-04-05 04:15:40JavaScript

二进制流转图片的方法

使用Blob和URL.createObjectURL

将二进制流转换为Blob对象,再通过URL.createObjectURL生成临时URL

const binaryData = new Uint8Array([...]); // 二进制数据
const blob = new Blob([binaryData], {type: 'image/jpeg'});
const imageUrl = URL.createObjectURL(blob);

const img = document.createElement('img');
img.src = imageUrl;
document.body.appendChild(img);

// 使用后记得释放内存
URL.revokeObjectURL(imageUrl);

使用Base64编码

将二进制数据转换为Base64字符串直接作为图片源

const binaryData = new Uint8Array([...]);
const base64String = btoa(String.fromCharCode(...binaryData));
const img = document.createElement('img');
img.src = `data:image/jpeg;base64,${base64String}`;
document.body.appendChild(img);

使用FileReader API

通过FileReader读取Blob对象并转换为DataURL

js实现二进制流转图片

const binaryData = new Uint8Array([...]);
const blob = new Blob([binaryData], {type: 'image/png'});
const reader = new FileReader();

reader.onload = function(e) {
    const img = document.createElement('img');
    img.src = e.target.result;
    document.body.appendChild(img);
};
reader.readAsDataURL(blob);

注意事项

  • 确保二进制数据是有效的图片格式
  • 根据实际图片类型设置正确的MIME类型
  • 大文件处理时考虑内存释放问题
  • 跨域情况下可能需要额外处理CORS

性能优化建议

对于大尺寸图片建议使用Blob URL方式 Base64编码会增加约33%的数据体积 Web Worker可用于处理大型二进制数据转换

标签: 图片js
分享给朋友:

相关文章

h5实现图片压缩

h5实现图片压缩

使用Canvas API压缩图片 HTML5的Canvas API可以通过调整画布尺寸和图像质量来实现图片压缩。创建一个Canvas元素,将图片绘制到Canvas上,再通过toDataURL或toBl…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数:…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…