如今我们在一些小程序里可以看到,有直接拍照或者上传图片,就可以被识别成文本内容,可以保存为WORD格式,这对于一些办公室文员或者助理来说使用率是比较高的,但小编发现这些小程序中都会保存用户上传的内容,安全性存在担忧,所以这几天,自己写了一个,因为经常会有纸质文件需要输入到电脑中保存,过去的话,我们需要一个个的打字,如今利用OCR进行识别,准确率高达99%,今天小编就为大家送上这个小工具。
首先服务器需要PHP5.3版本的运行环境。
在用户操作端,可以单个上传或者多张上传,支持手机和电脑自适应。
上传后,会自动生成WORD文件弹出下载保存提示。
需要用到的API为百度的OCR引擎,以上是目录结构
JS目录是放一个JQ文件,建议使用jquery-1.10.2.min.js
OCR是存放百度API识别文件(自动百度去申请API后下载对应的文件,放入该目录)
up目录是上传临时图片文件用到的,当识别完成后会自动删除图片。
index.php是上传界面,也可以是index.htm,这是一个静态文件
word.php是一个功能文件,主要是处理上传和识别文字的一个核心文件,由 index.php提交后,它去处理的。
今天就把index.php和word.php分享出来,其他文件可以从互联网获得。
index.php
图片转WORD文件
图片转WORD文件
可同时选择多个图片上传,注意:手机直接拍照时只能一次上传一张,建议先拍到手机相册后再批量选择上传!
本系统采用缓存技术,不保存用户上传资料,所有操作关闭或者刷新都将自动清除!
word.php
header("Content-type: text/html; charset=utf-8");
$arr=$_FILES["file"]["tmp_name"];
$arr2=$_FILES["file"]["type"];
foreach($arr2 as $vp){
if(!stristr($vp,'image/')) exit("");
}
foreach($arr as $k=>$v){
$fname=time().rand(100,999);
$houzui = strtolower(pathinfo($_FILES["file"]['name'][$k], PATHINFO_EXTENSION));//获取后缀
$hz = '.'.strtolower($houzui);
move_uploaded_file($v,"up/" . $fname.$hz);
$pic_arr[]=$fname.$hz;
}
require_once 'orc/AipOcr.php';
// 你的 APPID AK SK
$APP_ID = ' ';
$API_KEY = ' ';
$SECRET_KEY = ' ';
$client = new AipOcr($APP_ID, $API_KEY, $SECRET_KEY);
$sl=0;
foreach($pic_arr as $vs){
$image = file_get_contents('up/'.$vs);
$sl++;
unlink('up/'.$vs);
// 调用通用文字识别, 图片参数为本地图片
$jg=$client->basicGeneral($image);
$jgs=$jg['words_result'];
if($jgs){
foreach($jgs as $v)
{
$words.=$v['words'].'
';
}
}
$words.='--------第'.$sl.'张图内容----------
';
$words.='
';
}
echo '
';
echo ' '.$words.'';
ob_start(); //打开缓冲区
header("Cache-Control: public");
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
if (strpos($_SERVER["HTTP_USER_AGENT"],'MSIE')) {
header('Content-Disposition: attachment; filename=OK.doc');
}else if (strpos($_SERVER["HTTP_USER_AGENT"],'Firefox')) {
Header('Content-Disposition: attachment; filename=OK.doc');
} else {
header('Content-Disposition: attachment; filename=OK.doc');
}
header("Pragma:no-cache");
header("Expires:0");
ob_end_flush();//输出全部内容到浏览器
?>
在核心文件中,处理上传,识别成文字,自动删除图片,自动生成WORD分页,然后弹出下载提示,保存的word文件即时我们需要的内容了。
说明:以上PHP核心文件未考虑安全性,仅供学习使用,若需要投入到真正的使用过程中,请自行增加程序的安全性。
希望大家用来练手,能写出更好的在线工具,为工作和生活提供更多的便利,也可以留言和我交流。
留言与评论(共有 0 条评论) |