Skip to content

Commit 66fdfc8

Browse files
committed
Initial commit
0 parents  commit 66fdfc8

File tree

5 files changed

+81
-0
lines changed

5 files changed

+81
-0
lines changed

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Auto detect text files and perform LF normalization
2+
* text=auto

codeimg.png

6.19 KB
Loading

deCodeImg.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
from wsgiref.simple_server import make_server
2+
from urllib import parse, request
3+
import ddddocr, sys, getopt, re, base64
4+
5+
def getImgBytes(imgParam):
6+
if re.match(r'^http', imgParam) != None:
7+
resp = request.urlopen(imgParam)
8+
img_bytes = bytearray(resp.read())
9+
pass
10+
elif re.match(r'(\.jpg|\.jpeg|\.png|\.gif)$', imgParam) != None:
11+
with open(imgParam, 'rb') as f:
12+
img_bytes = f.read()
13+
else:
14+
img_bytes = base64.b64decode(imgParam)
15+
pass
16+
return img_bytes
17+
18+
def deCodeImg(imgBytes):
19+
ocr = ddddocr.DdddOcr()
20+
res = ocr.classification(imgBytes)
21+
return res
22+
23+
def app(environ, start_response):
24+
start_response('200 OK', [('Content-Type', 'text/html'),('Access-Control-Allow-Origin', '*')])
25+
if environ["PATH_INFO"] == "/":
26+
params = parse.parse_qs(environ["QUERY_STRING"])
27+
action = "getCode"
28+
if "action" in params.keys():
29+
action = params["action"][0]
30+
if action == "getCode":
31+
return [str.encode(deCodeImg(getImgBytes(params["img"][0])))]
32+
return [b'1']
33+
34+
35+
def main(argv):
36+
port = 416
37+
makeServer = False
38+
imgParam = ""
39+
try:
40+
opts, args = getopt.getopt(argv,"hi:mp:",["ifile=", "makeServer", "port="])
41+
except getopt.GetoptError:
42+
print('deCodeImg.py -i <imgParam> or deCodeImg.py -m <makeServer> -p <port>')
43+
sys.exit(2)
44+
for opt, arg in opts:
45+
if opt == '-h':
46+
print('deCodeImg.py -i <imgParam> or deCodeImg.py -m <makeServer> -p <port>')
47+
sys.exit()
48+
elif opt in ("-i", "--imgParam"):
49+
imgParam = arg
50+
print(deCodeImg(getImgBytes(imgParam)))
51+
sys.exit()
52+
elif opt in ("-m", "--makeServer"):
53+
makeServer = True
54+
elif opt in ("-p", "--port"):
55+
port = arg
56+
if makeServer == True:
57+
print('--- DeCodeImg Server Started --- \nhttp://127.0.0.1:416/?img=c:/codeimg.png\nhttp://127.0.0.1:416/?img=http://a.a/codeimg.png\nhttp://127.0.0.1:416/?img=Base64 Data')
58+
httpd = make_server('', port, app)
59+
httpd.serve_forever()
60+
elif imgParam == "":
61+
print('--- DeCodeImg --- \n-h to view help')
62+
63+
if __name__ == "__main__":
64+
main(sys.argv[1:])

readme.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
ImgCodeCheck
2+
==========================
3+
4+
---
5+
+ Requirements
6+
Python3
7+
pip3 install ddddocr
8+
9+
+ Usage
10+
- local
11+
deCodeImg.py -i imgParam or deCodeImg.py -m makeServer -p port
12+
- Web api
13+
Start run.cmd
14+
Visit http://127.0.0.1:416/?img=Base64Data

run.cmd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
python3 deCodeImg.py -m

0 commit comments

Comments
 (0)