使用writeFile写入ArrayBuffer类型PNG数据时触发TypeError错误
写入PNG文件时的TypeError问题及解决
我尝试写入PNG数据文件时遇到了错误。
原始代码
var png = UPNG.encode([data], width, height, 0); var file = fs.writeFile("mypng.png", png);
错误信息
TypeError: "data"参数必须是字符串、Buffer、TypedArray或DataView实例,接收到的是ArrayBuffer实例
代码修正说明
已验证解决方案有效,需注意两个关键调整:
- 向
UPNG.encode传入UInt8Array的buffer属性 - 将UPNG返回的结果转换为Node.js的
Buffer类型后,再传入fs.writeFile
修改前代码
var data = UInt8Array(value); var png = UPNG.encode([data], width, height, 0); var file = fs.writeFile("mypng.png", png);
修改后代码
var data = UInt8Array(value); var png = UPNG.encode([data.buffer], width, height, 0); var buffer = Buffer.from(png); var file = fs.writeFile("mypng.png", buffer);
内容的提问来源于stack exchange,提问作者1.21 gigawatts
相关产品推荐
相关产品推荐

