Как правильно декодировать изображение отправленное через WebSocket

Как правильно декодировать строку, чтобы из нее получить изображение. На стороне клиента данные кодируются таким образом

def finger_detection(self):
    image = GetFingerprint()
    print(image)
    print("Finger detected")
    width, height = image.size    
    #image = np.asarray(image);
    print("Send finger")
    byteIO=io.BytesIO()
    image.save(byteIO,format="PNG")
    imageBuffer=byteIO.getvalue()
    encodeBuffer=base64.b64encode(imageBuffer)
    resp_data={
        'action' : ResponseActions.RESULT_IMAGE_ACTION,
        'payload' : str(encodeBuffer)
    }
    self.socket.send(json.dumps(resp_data))
    print("---")

Код на стороне сервера

private onMessage(ev:globalThis.MessageEvent):any{
    const incomingMessage:ClientEvent=JSON.parse(ev.data);
    console.log(incomingMessage);
    let buffer=new Buffer(incomingMessage.payload,"utf8");
    fs.writeFile(filePath+genHexString()+".png",buffer,{encoding:"base64"},(err:NodeJS.ErrnoException|null)=>{
        if (err)
            console.log(err);
    });
}

Ответы (1 шт):

Автор решения: Алмаз Рамазанов

Исправил на клиенте, спасибо @insolor. На стороне сервера сделал таким образом.

private onMessage(ev:globalThis.MessageEvent):any{
    const incomingMessage:ClientEvent=JSON.parse(ev.data);
    console.log(incomingMessage);
    let imageBuffer:Buffer=new Buffer(incomingMessage.payload,"base64");
    fs.writeFile(filePath+genHexString()+".png",imageBuffer,{encoding:null},(err:NodeJS.ErrnoException|null)=>{
        if (err)
            console.log(err);
    });
→ Ссылка