request($this->idcardUrl, $data); } /** * @param string $image 图像读取 * @return array */ public function bankcard($image){ $data = array(); $data['image'] = $image; return $this->request($this->bankcardUrl, $data); } /** * @param string $image 图像读取 * @param array $options 可选参数 * @return array */ public function general($image, $options=array()){ $data = array(); $data['image'] = $image; $data = array_merge($data, $options); return $this->request($this->generalUrl, $data); } /** * @param string $image 图像读取 * @param array $options 可选参数 * @return array */ public function basicGeneral($image, $options=array()){ $data = array(); $data['image'] = $image; $data = array_merge($data, $options); return $this->request($this->basicGeneralUrl, $data); } /** * @param string $image 图像读取 * @param options 接口可选参数 * detect_direction : true/false * language_type : *

识别语言类型,若不传则默认为CHN_ENG。 * 可选值包括:CHN_ENG - 中英文混合; * ENG - 英文; * POR - 葡萄牙语; * FRE - 法语; * GER - 德语; * ITA - 意大利语; * SPA - 西班牙语; * RUS - 俄语; * JAP - 日语

* mask : 表示mask区域的黑白灰度图片,白色代表选中, base64编码 * detect_language: true/false * @return array */ public function webImage($image, $options=array()){ $data = array(); $data['image'] = $image; $data = array_merge($data, $options); return $this->request($this->webImageUrl, $data); } /** * @param string $image 图像读取 * @param options 接口可选参数 * detect_direction : true/false * language_type : *

识别语言类型,若不传则默认为CHN_ENG。 * 可选值包括:CHN_ENG - 中英文混合; * ENG - 英文; * POR - 葡萄牙语; * FRE - 法语; * GER - 德语; * ITA - 意大利语; * SPA - 西班牙语; * RUS - 俄语; * JAP - 日语

* mask : 表示mask区域的黑白灰度图片,白色代表选中, base64编码 * detect_language: true/false * @return array */ public function enhancedGeneral($image, $options=array()){ $data = array(); $data['image'] = $image; $data = array_merge($data, $options); return $this->request($this->enhancedGeneralUrl, $data); } /** * 行驶证 * @param string $image 图像读取 * @param options 接口可选参数 * @return array */ public function vehicleLicense($image, $options=array()){ $data = array(); $data['image'] = $image; $data = array_merge($data, $options); return $this->request($this->vehicleLicenseUrl, $data); } /** * 驾驶证 * @param string $image 图像读取 * @param options 接口可选参数 * @return array */ public function drivingLicense($image, $options=array()){ $data = array(); $data['image'] = $image; $data = array_merge($data, $options); return $this->request($this->drivingLicenseUrl, $data); } /** * 格式检查 * @param string $url * @param array $data * @return array */ protected function validate($url, &$data){ if($url === $this->tableResultUrl){ return true; } // 支持url if(preg_match('/^\w{1,128}:\/\//', $data['image'])){ $data['url'] = $data['image']; unset($data['image']); return true; } $imageInfo = AipImageUtil::getImageInfo($data['image']); //图片格式检查 if(!in_array($imageInfo['mime'], array('image/jpeg', 'image/png', 'image/bmp'))){ return array( 'error_code' => 'SDK109', 'error_msg' => 'unsupported image format', ); } //图片大小检查 if($imageInfo['width'] < 15 || $imageInfo['width'] > 4096 || $imageInfo['height'] < 15 || $imageInfo['height'] > 4096){ return array( 'error_code' => 'SDK101', 'error_msg' => 'image length error', ); } $data['image'] = base64_encode($data['image']); //编码后小于4m if(strlen($data['image']) >= 4 * 1024 * 1024){ return array( 'error_code' => 'SDK100', 'error_msg' => 'image size error', ); } return true; } /** * 异步请求 * @param string $image 图像读取 * @param options 接口可选参数 * @return array */ public function tableRecognitionAsync($image, $options=array()){ $data = array(); $data['image'] = $image; $data = array_merge($data, $options); return $this->request($this->tableRequestUrl, $data); } /** * 获取结果 * @param string $requestId 图像读取 * @param options 接口可选参数 * @return array */ public function getTableRecognitionResult($requestId, $options=array()){ $data = array(); $data['request_id'] = $requestId; $data = array_merge($data, $options); return $this->request($this->tableResultUrl, $data); } /** * 同步请求 * @param string $image 图像读取 * @param options 接口可选参数 * @return array */ public function tableRecognition($image, $options=array(), $timeout=10000){ $result = $this->tableRecognitionAsync($image); if(isset($result['error_code'])){ return $result; } $requestId = $result['result'][0]['request_id']; $count = ceil($timeout / 1000); for($i=0; $i<$count; $i++){ $result = $this->getTableRecognitionResult($requestId, $options); // 完成 if($result['result']['ret_code'] == 3){ break; } sleep(1); } return $result; } /** * 车牌 * @param string $image 图像读取 * @param options 接口可选参数 * @return array */ public function licensePlate($image, $options=array()){ $data = array(); $data['image'] = $image; $data = array_merge($data, $options); return $this->request($this->licensePlateUrl, $data); } /** * @param string $image 图像读取 * @param array $options 可选参数 * @return array */ public function accurate($image, $options=array()){ $data = array(); $data['image'] = $image; $data = array_merge($data, $options); return $this->request($this->accurateUrl, $data); } /** * @param string $image 图像读取 * @param array $options 可选参数 * @return array */ public function basicAccurate($image, $options=array()){ $data = array(); $data['image'] = $image; $data = array_merge($data, $options); return $this->request($this->basicAccurateUrl, $data); } /** * @param string $image 图像读取 * @param array $options 可选参数 * @return array */ public function receipt($image, $options=array()){ $data = array(); $data['image'] = $image; $data = array_merge($data, $options); return $this->request($this->receiptUrl, $data); } /** * @param string $image 图像读取 * @param array $options 可选参数 * @return array */ public function businessLicense($image, $options=array()){ $data = array(); $data['image'] = $image; $data = array_merge($data, $options); return $this->request($this->businessLicenseUrl, $data); } }