face++识别图片中的文字

首先需要去face++官网注册账号

地址 https://www.faceplusplus.com.cn/

创建一个应用拿到api_key和api_secret





直接上代码  注释都有

    public function content(){

        if(request()->isPost()){

            $img = request()->file('img');

            $info = $img->move(ROOT_PATH . 'public' . DS . 'uploads/images');

            //输出保存文件的路径包括盘符

            $attrurl = str_replace('\\', '/', $info->getPathname());

            //图片转二进制

            $fp = fopen($attrurl, 'rb');

            $content = fread($fp, filesize($attrurl));

            // base64编码   不转64的话需要图片二进制  可是图片二进制老报image_file参数缺失 暂没找见问题所在有待继续研究

            $file_content = chunk_split(base64_encode($content));

            //查找 api_key 和 api_secret

            $facecon = Db::name('face')->where('id',1)->find();

            $api_key = $facecon['appkey'];

            $api_secret = $facecon['appsecret'];

            //需要调用的接口

            $server = "https://api-cn.faceplusplus.com/imagepp/v1/recognizetext";

            $params['api_key'] = $api_key;

            $params['api_secret'] = $api_secret;

            $params['image_base64'] = $file_content;

            $result = $this->http_post($server,$params);

            $info = json_decode($result,true);

            // dump($info['result']);die;

            if(!empty($info['result'])){

                $txt = '';

                //把扫出来的字遍历输出

                foreach($info['result'] as $v){

                    $txt .= "  ".$v['value'];

                }

            }else{

                $txt = "请上传带文字的图片";

            }

            

            

        }



        $this->assign('txt',$txt);

        return $this->fetch();

    }













     /**

     * POST 请求

     * @param string $url

     * @param array $param

     * @param boolean $post_file 是否文件上传

     * @return string content

     */

    protected function http_post($url,$param,$post_file=false){

        $oCurl = curl_init();

        if(stripos($url,"https://")!==FALSE){

            curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);

            curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false);

            curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1

        }

        if (is_string($param) || $post_file) {

            $strPOST = $param;

        } else {

            $aPOST = array();

            foreach($param as $key=>$val){

                $aPOST[] = $key."=".urlencode($val);

            }

            $strPOST =  join("&", $aPOST);

        }

        curl_setopt($oCurl, CURLOPT_URL, $url);

        curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );

        curl_setopt($oCurl, CURLOPT_POST,true);

        curl_setopt($oCurl, CURLOPT_POSTFIELDS,$strPOST);

        $sContent = curl_exec($oCurl);

        $aStatus = curl_getinfo($oCurl);

        curl_close($oCurl);

        if(intval($aStatus["http_code"])==200){

            return $sContent;

        }else{

            return false;

        }

    }

 

你可能感兴趣的:(开发)