将图像转换为可读流

Convert image into Readable stream

我有一张图片,它需要根据 API reference:

作为 stream.Readable 进入 API 调用

function addFaceFromStream(personGroupId: string, personId: string, image: stream.Readable, options?: Object)

我已经尝试了几个小时了,但似乎无法理解。我目前正在尝试这个,但收到一条错误消息,指出 _read() 方法未实现:

let childImages = new FileSet("c*.jpg").files // returns a string[]
// Add images to the person group person "child"
for (let chImage of childImages) {
    // Returns a Promise<PersistedFace>
    await client.personGroupPerson.addFaceFromStream(PERSON_GROUP_ID, 
        child.personId, new stream.Readable().push(chImage).push(null))
        .then((face) => {
            console.log('ID ' + face.persistedFaceId + ' was added to a person group person called Child.')
        })
}

错误:

events.js:187
      throw er; // Unhandled 'error' event
      ^

Error [ERR_METHOD_NOT_IMPLEMENTED]: The _read() method is not implemented
    at Readable._read (_stream_readable.js:647:24)
    at Readable.read (_stream_readable.js:490:10)
    at maybeReadMore_ (_stream_readable.js:634:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)
Emitted 'error' event on Readable instance at:
    at errorOrDestroy (internal/streams/destroy.js:108:12)
    at Readable._read (_stream_readable.js:647:3)
    at Readable.read (_stream_readable.js:490:10)
    at maybeReadMore_ (_stream_readable.js:634:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  code: 'ERR_METHOD_NOT_IMPLEMENTED'

我一直看到人们在创建可读流后使用 pipe() 的类似方式,但我不需要为写入准备它(如果我正确理解管道)。它只需要是一个可读流。

我在一个隐藏的不起眼的文件中找到了它。这有效:

const createReadStream = require('fs').createReadStream

    let childImages = new FileSet("c*.jpg").files

    // Add images to the person group person "child"
    for (let chImage of childImages) {
        // Returns a Promise<PersistedFace>
        await client.personGroupPerson.addFaceFromStream(PERSON_GROUP_ID, 
            child.personId, () => createReadStream(chImage))
            .then((face) => {
                console.log('ID ' + face.persistedFaceId + ' was added to a person group person called Child.')
            })
    }