-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathappFile.py
58 lines (49 loc) · 1.53 KB
/
appFile.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
from rembg.bg import remove
import numpy as np
import io
from PIL import Image
from flask import Flask,jsonify,make_response,request,Response
from furl import furl
import requests
from flask import request
from gevent.pywsgi import WSGIServer
import resource
from random import randint
import bjoern
import json
import cv2
import jsonpickle
import base64
from io import BytesIO
import io
resource.setrlimit(resource.RLIMIT_NOFILE, (65536, 65536))
app = Flask(__name__)
headers = {'Content-Type': 'application/json; charset=utf-8'}
USE_NNPACK=0
@app.route("/getImageWithoutBg", methods=['GET','POST'])
def getImageWithoutBg():
try:
requestJson = request.get_json()
imgstring = requestJson['inputImage']
image = Image.open(BytesIO(base64.b64decode(imgstring)))
img_byte_arr = io.BytesIO()
image.save(img_byte_arr, format='PNG')
img_byte_arr = img_byte_arr.getvalue()
data = np.asarray(img_byte_arr)
result = remove(data)
img = Image.open(io.BytesIO(result)).convert("RGBA")
output = BytesIO()
img.save(output, format='PNG')
im_data = output.getvalue()
image_data = base64.b64encode(im_data)
if not isinstance(image_data, str):
image_data = image_data.decode()
data_url = 'data:image/jpg;base64,' + image_data
return jsonify({ "value" : data_url })
except Exception:
pass
if __name__ == '__main__':
#http_server = WSGIServer(('',301), app)
#http_server.serve_forever()
bjoern.run(app, '', int(80))
#app.run()