太累了,,有时间再补解释

import pytesseract
import requests
from PIL import Image
from PIL import ImageFilter
from StringIO import StringIO
from werkzeug.utils import secure_filename
from gevent import monkey
from gevent.pywsgi import WSGIServer
monkey.patch_all()
from flask import Flask,render_template,jsonify,request,send_from_directory
import time
import os
import base64
import random app = Flask(__name__)
UPLOAD_FOLDER='upload'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
basedir = os.path.abspath(os.path.dirname(__file__))
ALLOWED_EXTENSIONS = set(['png','jpg','JPG','PNG']) def allowed_file(filename):
return '.' in filename and filename.rsplit('.',)[] in ALLOWED_EXTENSIONS @app.route('/',methods=['GET'],strict_slashes=False)
def indexpage():
return render_template('index.html') @app.route('/',methods=['POST'],strict_slashes=False)
def api_upload():
log = open("error.log","w+")
file_dir = os.path.join(basedir, app.config['UPLOAD_FOLDER'])
if not os.path.exists(file_dir):
os.makedirs(file_dir)
print request.headers
print >> log, request.headers
f = request.files['file']
postLang = request.form.get("lang", type=str) log.close() if f and allowed_file(f.filename):
fname = secure_filename(f.filename)
ext = fname.rsplit('.',)[]
unix_time = int(time.time())
new_filename = str( random.randrange(, , ))+str(unix_time)+'.'+ext
f.save(os.path.join(file_dir,new_filename))
if cmp(postLang, "chi_sim"):
strboxs = pytesseract.image_to_boxes(Image.open("/var/OCRhtml/upload/" + new_filename), lang="chi_sim")
strdata = pytesseract.image_to_string(Image.open("/var/OCRhtml/upload/" + new_filename), lang="chi_sim")
print "Chinese"
else:
strboxs = pytesseract.image_to_boxes(Image.open("/var/OCRhtml/upload/"+new_filename))
strdata = pytesseract.image_to_string(Image.open("/var/OCRhtml/upload/"+new_filename))
return jsonify({"errno":, "msg":"succeed ","data":strdata,"info":strboxs})
else:
return jsonify({"errno":, "errmsg":u"failed"}) if __name__ == '__main__':
http_server = WSGIServer(('', ), app)
http_server.serve_forever()

最新文章

  1. php登录注册页面及加载
  2. 阿里云centos安装svn和submin
  3. AX2012自定义注释脚本开发
  4. 【BZOJ1060】[ZJOI2007]时态同步 树形DP
  5. .NET中的流
  6. 关于resolve非泛型方法不能与类型实参一起使用
  7. 将 node.js 的数据保存到 mongo 数据库中
  8. 对QT的理解——能在公司里不做Java,不做很偏门的产品,不使用偏门的语言,还有钱挣,要有感恩的心
  9. JQuery之append和appendTo的区别,还有js中的appendChild用法
  10. ServletContext2
  11. synchronize学习
  12. 每天一个小算法(5)----找到链表倒数第K个结点
  13. MVC中如何实现本地化的解决方案
  14. (转载)html dom节点操作(获取/修改/添加或删除)
  15. Dynamics 365 Online-使用Azure Logic App 与 Dynamics 365 集成
  16. C语言中#undef作用
  17. MySQL的自动提交模式
  18. Libvmi实现分析
  19. MT【223】二次函数最大最小
  20. Unity调用Window提示框Yes/No(英文提示窗)

热门文章

  1. 深入理解java:4.2. 框架编程之Spring框架的设计理念
  2. spring boot-10.国际化
  3. (5.2.2)配置服务器参数——dbcc跟踪标记(trace)
  4. 数位dp(二进制01问题)
  5. 一个php文件就可以把数据库的数据导出Excel表格
  6. Linux如何查看进程是否启动,查看端口占用
  7. P4304 [TJOI2013]攻击装置
  8. phpstudy配置多站点
  9. js 性能优化 - web worker
  10. cherrypy