import { blobToArrayBuffer } from "./blobToArrayBuffer" import { findBlockOfData } from "./findBlockOfData" import { hexToData } from "./hexToData" import fs from "fs" /** 从一个 ArrayBuffer 中提取其中的 Png 数据,通常是文件缩略图 */ export function extractPng(data: ArrayBuffer | Uint8Array) { const PNG_START = hexToData("89504e470d0a1a0a") const PNG_END = hexToData("0049454e44ae426082") let cur = 0 let isDone = false let blocks: Uint8Array[] = [] do { let re = findBlockOfData(data, PNG_START, PNG_END, cur) if (re) { blocks.push(re.block) cur = re.offsetEnd } else { isDone = true } } while (!isDone && cur < data.byteLength) return blocks }