chenyc
2024-05-13 83c3fd352439e8f8c5858aaa8190e6ea33e2722d
src/samples/faceApi.ts
@@ -44,6 +44,7 @@
 * @param path 图片路径
 */
const  faceShibie= async(path:any)=>{
  console.log('文件路径',path)
  const fileStream = fs.createReadStream(path);
  let client=createClient()
  // 通过本地文件
@@ -86,22 +87,70 @@
    delImg(path)
  })
}
// 验证---逻辑
const yanzhengimg=async(path:any)=>{
  console.log('文件路径--逻辑',path)
  const fileStream = fs.createReadStream(path);
  let client=createClient()
  // 通过本地文件
  const facedata= confingInfoStore().confingInfo.face_database
  const faceScore=confingInfoStore().confingInfo.face_score
  let searchFaceAdvanceRequest = new $facebody20191230.SearchFaceAdvanceRequest();
  searchFaceAdvanceRequest.imageUrlObject = fileStream;
  searchFaceAdvanceRequest.dbName = facedata
  searchFaceAdvanceRequest.limit = 2;
  let runtime = new $Util.RuntimeOptions({ });
  client.searchFaceAdvance(searchFaceAdvanceRequest, runtime).then(re=>{
    if(re.statusCode===200){
      const matchList=re.body.data?.matchList
      // console.log('得到的人脸库')
      console.log(matchList)
      if(matchList?.length>0){
        const faceItems =matchList[0].faceItems
        if(faceItems?.length===0){
          console.log('没有找到患者对应的人脸')
          return false
        }
        if(faceItems[0].score>=faceScore){
          const entityId=faceItems[0].entityId
          console.log(entityId,'得到了人脸识别id,存患者code到vuex')
          sockteStore().setfaceSockte({
            deviceType: "人脸识别",
            deviceName: "人脸识别",
            result: entityId,
            resultTime: ''
          })
        }else{
          console.log('没有找到患者对应的人脸')
        }
      }
    }
  }).finally(()=>{
    // console.log('---------------都要执行的')
     // 删除图片
    // delImg(path)
  })
}
const faceApiCheck=async(path:any)=>{
  fs.readFile(path, (err, data) => {
    if (err) throw err;
      let blobFile = new File([data], 'name.png', {type:"image/png"})
      console.log(blobFile)
      const formData = new FormData() // 下面有备注
      formData.append('File1', blobFile)
      formData.append('file', blobFile)
      checkUploadFile(formData).then(re=>{
        console.log('-----')
          console.log('-----',re)
      }).finally(()=>{
          // 删除图片
          delImg(path)
      })
  })
  
}
// base64z转文件后验证
  }
  // base64z转文件后验证
const base64toFile = (dataurl:any,filename='file') =>  {
  if (!fs.existsSync('./imgs')) {
    fs.mkdir('./imgs', (err) => {
@@ -118,12 +167,20 @@
     if (err) {
       console.log(err);
     } else {
      //  console.log('写入成功!验证阿里', path);
       // getOssUrl(path)
       // 验证图片
       faceShibie(path)
      //  faceApiCheck(path)
       // 是否本地识别
       const isLanFace= confingInfoStore().confingInfo.isLanFace
       if(isLanFace){
        //本地识别
        faceApiCheck(path)
       }else{
        //阿里验证外网
        faceShibie(path)
       }
     }
   })
}
@@ -137,7 +194,9 @@
    }
  })
}
export {
  yanzhengimg,
  createClient,
  faceShibie,
  base64toFile