示例#1
0
 public function getFaceStatus()
 {
     $resumeFacesModel = ResumesFaces::find()->where(array('finished_time' => null))->orderBy('id asc')->one();
     if ($resumeFacesModel) {
         $hpStatus = Yii::$app->HpApi->getStatus($resumeFacesModel->hp_job_id);
         if ($hpStatus['status'] == 'finished') {
             $faceArray = $hpStatus['actions'][0]['result']['face'];
             if (count($faceArray) > 1) {
                 $faceSizeArray = array();
                 for ($ctr = 0; count($faceArray) > $ctr; $ctr++) {
                     $faceSizeArray[$ctr] = $faceArray[$ctr]['width'] * $faceArray[$ctr]['height'];
                 }
                 $faceIndex = array_keys($faceSizeArray, max($faceSizeArray));
                 $face = $faceArray[$faceIndex[0]];
             } else {
                 $face = $faceArray[0];
             }
             $resumeFacesModel->top_position = $face['top'];
             $resumeFacesModel->left_position = $face['left'];
             $resumeFacesModel->width = $face['width'];
             $resumeFacesModel->height = $face['height'];
             $resumeFacesModel->finished_time = new Expression('NOW()');
             if ($face) {
                 try {
                     // Crop the image
                     $imageFilename = $resumeFacesModel->resumes->candidatesFiles->server_filename;
                     $imageFullPath = '/home/ubuntu/workspace/basic/uploads/' . $resumeFacesModel->resumes->candidatesFiles->candidate_id;
                     // Create image instances
                     $src = imagecreatefromjpeg($imageFullPath . '/' . $imageFilename);
                     $dest = imagecreatetruecolor($face['width'], $face['height']);
                     // Copy
                     imagecopy($dest, $src, 0, 0, $face['left'], $face['top'], $face['width'], $face['height']);
                     // Output and free from memory
                     header('Content-Type: image/gif');
                     imagejpeg($dest, $imageFullPath . '/crop_' . $imageFilename);
                     imagedestroy($dest);
                     imagedestroy($src);
                     $resumeFacesModel->save();
                 } catch (Exception $exc) {
                     var_dump($face);
                 }
             }
         }
     }
 }