将图像转换为可读流
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.')
})
}
我有一张图片,它需要根据 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.')
})
}