可以使用 Canvas 或 JS 中的 ImageData 对象将二进制数据保存为图片。
方法一:使用 Canvas
- 创建一个空的 Canvas 元素,设置其宽度和高度;
- 获取 Canvas 的上下文对象,使用 createImageData 方法创建一个 ImageData 对象,并将二进制数据赋值给 ImageData 对象的 data 属性;
- 使用 putImageData 方法将 ImageData 对象绘制到 Canvas 上;
- 使用 toDataURL 方法将 Canvas 转换为 base64 的图片格式。
示例代码:
const imageWidth = 100;
const imageHeight = 100;
const imageData = new ImageData(binaryData, imageWidth, imageHeight);
const canvas = document.createElement('canvas');
canvas.width = imageWidth;
canvas.height = imageHeight;
const ctx = canvas.getContext('2d');
ctx.putImageData(imageData, 0, 0);
const dataURL = canvas.toDataURL('image/png');
方法二:使用 ImageData
- 创建一个空的 ImageData 对象,设置其宽度和高度;
- 将二进制数据,一个像素一个像素地赋值给 ImageData 对象的 data 属性;
- 将 ImageData 对象转换为 Canvas 图片对象,使用 toDataURL 方法将 Canvas 转换为 base64 的图片格式。
示例代码:
const imageWidth = 100;
const imageHeight = 100;
const imageData = new ImageData(imageWidth, imageHeight);
for (let i = 0; i < binaryData.length; i++) {
imageData.data[i] = binaryData[i];
}
const canvas = document.createElement('canvas');
canvas.width = imageWidth;
canvas.height = imageHeight;
const ctx = canvas.getContext('2d');
ctx.putImageData(imageData, 0, 0);
const dataURL = canvas.toDataURL('image/png');