| | |
| | | import com.arcsoft.face.FaceEngine; |
| | | import com.arcsoft.face.toolkit.ImageFactory; |
| | | import com.arcsoft.face.toolkit.ImageInfo; |
| | | import com.google.gson.reflect.TypeToken; |
| | | import com.whyc.constant.YamlProperties; |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.factory.FaceEngineFactory; |
| | | import com.whyc.pojo.PermitGroup; |
| | | import com.whyc.pojo.UserFace; |
| | | import com.whyc.pojo.UserInf; |
| | | import com.whyc.service.FaceService; |
| | | import com.whyc.service.PermitGroupUserService; |
| | |
| | | import com.whyc.util.FaceIdentifyUtil; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.assertj.core.util.Arrays; |
| | | import org.springframework.boot.system.ApplicationHome; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import sun.misc.BASE64Decoder; |
| | |
| | | import java.io.File; |
| | | import java.io.FileOutputStream; |
| | | import java.io.IOException; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import static com.whyc.util.ActionUtil.getApplication; |
| | | |
| | |
| | | */ |
| | | @RequestMapping("face") |
| | | @RestController |
| | | @Api(tags = "人脸识别") |
| | | @Api(tags = "用户管理-人脸识别") |
| | | public class FaceController { |
| | | |
| | | @Resource |
| | |
| | | |
| | | @PostMapping |
| | | @ApiOperation(value = "添加",notes = "添加到人脸库") |
| | | public Response add(@RequestParam String fileData,String uName,Integer uId ){ |
| | | public Response add(@RequestBody Map<String,Object> paramMap ){ |
| | | String fileData = (String) paramMap.get("fileData"); |
| | | String uName = (String) paramMap.get("uName"); |
| | | Integer uId = Integer.parseInt((String)paramMap.get("uId")); |
| | | //传参 uId,uName,fileData--文件流 |
| | | fileData = fileData.replaceAll(" ", "+"); |
| | | |
| | |
| | | Response checkRes1 = FaceIdentifyUtil.orientAndPxDetect(faceEngine,imageInfo); |
| | | if((boolean)checkRes1.getData()){ |
| | | /*=========图片保存===========*/ |
| | | //获取到tomcat webapp绝对路径 |
| | | String realPath = getApplication().getRealPath("/"); |
| | | // String[] split = realPath.split(File.separator); |
| | | String[] split = realPath.split("\\\\"); |
| | | String projectName = split[split.length - 1]; |
| | | |
| | | String webAppPath = realPath.substring(0, realPath.lastIndexOf(projectName)); |
| | | ApplicationHome applicationHome = new ApplicationHome(getClass()); |
| | | File jarFile = applicationHome.getDir(); |
| | | |
| | | //存储人脸图片的文件夹 |
| | | String fileDirName = webAppPath + projectName + "_photo"; |
| | | String fileDirName = jarFile.getParentFile().toString()+File.separator+"fg_photo"; |
| | | |
| | | File file = new File(fileDirName); |
| | | //不存在则创建该文件夹 |
| | |
| | | Response checkRes1 = FaceIdentifyUtil.orientAndPxDetect(faceEngine, imageInfo); |
| | | if ((boolean)checkRes1.getData()) { |
| | | /*=========图片保存===========*/ |
| | | //获取到tomcat webapp绝对路径 |
| | | String realPath = getApplication().getRealPath("/"); |
| | | String[] split = realPath.split(File.separator); |
| | | String projectName = split[split.length - 1]; |
| | | |
| | | String webAppPath = realPath.substring(0, realPath.lastIndexOf(projectName)); |
| | | ApplicationHome applicationHome = new ApplicationHome(getClass()); |
| | | File jarFile = applicationHome.getDir(); |
| | | |
| | | //存储人脸图片的文件夹 |
| | | String fileDirName = webAppPath + projectName + "_photo"; |
| | | String fileDirName = jarFile.getParentFile().toString()+File.separator+"fg_photo"; |
| | | |
| | | File file = new File(fileDirName); |
| | | //不存在则创建该文件夹 |
| | |
| | | @ApiOperation(value = "删除") |
| | | @Transactional |
| | | public Response delete(@RequestParam Integer uId,@RequestParam Integer faceId, |
| | | @RequestParam String uName){ |
| | | @RequestParam String uName,HttpServletRequest request){ |
| | | |
| | | //更新user_inf和face表 |
| | | service.update(uId,faceId); |
| | | |
| | | //删除图片 |
| | | //获取到图片所在文件夹的全路径 |
| | | String fileName = findFileDirPath(); |
| | | String fileName = findFileDirPath(request); |
| | | //获取图片的全路径 |
| | | File file = new File(fileName+File.separator+uName+".jpg"); |
| | | if(file.exists()){ |
| | |
| | | return new Response().setII(1,"删除成功"); |
| | | } |
| | | |
| | | /**获取图片文件夹全路径*/ |
| | | private String findFileDirPath() { |
| | | String realPath = getApplication().getRealPath("/"); |
| | | String[] split = realPath.split("\\\\"); |
| | | String projectName = split[split.length - 1]; |
| | | |
| | | String webAppPath = realPath.substring(0, realPath.lastIndexOf(projectName)); |
| | | |
| | | //存储人脸图片的文件夹 |
| | | String fileDirName = webAppPath + "\\" + projectName + "_photo"; |
| | | |
| | | return fileDirName; |
| | | /**获取图片文件夹全路径 |
| | | * @param request*/ |
| | | private String findFileDirPath(HttpServletRequest request) { |
| | | ApplicationHome applicationHome = new ApplicationHome(getClass()); |
| | | File jarFile = applicationHome.getDir(); |
| | | //在jar包所在目录下生成一个upload文件夹用来存储上传的图片 |
| | | return jarFile.getParentFile().toString()+File.separator+"fg_photo"; |
| | | } |
| | | |
| | | /**获取图片的http加载url*/ |
| | |
| | | HttpServletRequest request = ActionUtil.getRequest(); |
| | | //获取项目名称 |
| | | String realPath = ActionUtil.getApplication().getRealPath("/"); |
| | | String[] split = realPath.split("/"); |
| | | //String[] split = realPath.split("/"); |
| | | String[] split = realPath.split(File.separator); |
| | | String projectName = split[split.length - 1]; |
| | | //图片保存路径,采取ip+port访问形式而非硬盘形式,方便图片加载 |
| | | String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+"/"+projectName+"_photo/"+uName+".jpg"; |
| | |
| | | */ |
| | | @GetMapping("info") |
| | | @ApiOperation(value = "查询人脸信息") |
| | | public Response getInfo(){ |
| | | public Response getInfo(HttpServletRequest request){ |
| | | //传入pageNum,pageSize |
| | | UserInf userInf = (UserInf) ActionUtil.getSession().getAttribute("user"); |
| | | UserInf userInf = (UserInf) request.getSession().getAttribute("user"); |
| | | UserInf user = service.getInfo(userInf.getUId()); |
| | | |
| | | return new Response().set(1,user); |