FileReader (клиент) vs fs (Файловая система на сервере npm) для PNGJS.parse
Я пытаюсь работать с библиотекой PNGJS, так как я хочу проанализировать файл PNG и определить цвет каждого пикселя на изображении.
В документации PNGJS он использует пакет npm 'fs' для чтения файла. например
var data = fs.readFileSync('in.png');
var png = PNG.sync.read(data);
или же
fs.createReadStream('in.png')
.pipe(new PNG())
.on('parsed', function() {
this.adjustGamma();
this.pack().pipe(fs.createWriteStream('out.png'));
});
Я пытаюсь прочитать файл на клиенте, однако, и поэтому я не могу использовать пакет fs npm.
Поэтому я решил использовать FileReader. например
const img = document.getElementById('maze_text')
console.log('img', img)
console.log('img.src', img.src)
fetch(img.src)
.then(res => res.blob())
.then(blob => {
const file = new File([blob], 'maze_text.png', blob)
console.log(file)
var FileReader = new window.FileReader()
FileReader.onload = function() {
var data = FileReader.result
console.log('FileReader.result', FileReader.result)
newPNG.parse(data, (err, data) => {
console.log('inside newPNG.parse')
console.log('err', err)
console.log('data', data)
})
};
var imageData = FileReader.readAsArrayBuffer(file)
// var imageData = FileReader.readAsText(file)
// var imageData = FileReader.readAsDataURL(file)
// var imageData = FileReader.readAsBinaryString(file)
Однако, когда я передаю файл в метод синтаксического анализа PNGJS, я получаю следующую ошибку:
err Error: Stream not writable
at module.exports.ChunkStream.write (chunkstream.js:46)
at module.exports.ChunkStream.end (chunkstream.js:74)
at exports.PNG.PNG.end (png.js:98)
at exports.PNG.PNG.parse (png.js:88)
at FileReader.onload (Mazes.js:131)
Что эквивалентно fs.createReadStream или fs.readFileSync для API FileReader на стороне клиента?
а как работать с PNGJS?