Commit a428a228 authored by zhanglu's avatar zhanglu

Merge branch 'feature/create_image_zy' into 'dev'

注释扫脸逻辑

See merge request alpha/sun!62
parents 49bcea70 b939fca8
......@@ -5,7 +5,8 @@
import json
from django.conf import settings
from gm_upload import upload, IMG_TYPE, upload_with_short
from gm_types.ascle import ERROR
from gm_upload import IMG_TYPE, upload_with_short
from utils.base import APIView
from django.contrib.auth.hashers import make_password
......@@ -106,49 +107,56 @@ class UserImage(APIView):
if not all([image_id, image_url, user_id]):
error_logger.error(u'参数不完整')
return
err, data = self.rpc['saber/face/detect'](url=image_url).unwrap()
if err:
error_logger.error(u'获取人脸失败')
faces = [
{
"point": [
item["rect"]["left"],
item["rect"]["top"],
item["rect"]["right"]-item["rect"]["left"],
item["rect"]["bottom"]-item["rect"]["top"],
]
}
for item in data.get("faces", [])
]
return self.write_fail(code=ERROR.ARG_MISS, message='参数不完整')
resp = self.rpc['venus/sun/user/check_image'](
user_id=user_id, image_id=image_id).unwrap()
if resp:
return self.write_success(data='', message='操作成功')
# 目前不需要 从图片中切出人脸
# try:
# data = self.rpc['saber/face/detect'](url=image_url).unwrap()
# except Exception as e:
# error_logger.error(u'分析人脸失败:%s', e)
# return self.write_fail(code=-1, message='分析人脸失败')
# faces = [{
# "point": [
# item["rect"]["left"],
# item["rect"]["top"],
# item["rect"]["right"]-item["rect"]["left"],
# item["rect"]["bottom"]-item["rect"]["top"]]} for item in data.get("faces", [])]
# if faces:
# point = faces[0].get('point', [])
# else:
# return self.write_fail(code=-1, message='获取人脸失败')
# file_path = download_img_func(image_url, user_id, suffix="png")
# images = tailor_image(file_path, [point])
# header_pic_path = images[0]
# with open(header_pic_path, 'rb') as f:
# image_url = upload_with_short(f, img_type=IMG_TYPE.USEREXTRA)[0]
try:
point = faces[0].get('point', [])
file_path = download_img_func(image_url, user_id, suffix="png")
images = tailor_image(file_path, point)
header_pic_path = images[0]
with open(header_pic_path, 'rb') as f:
image_url = upload_with_short(f, img_type=IMG_TYPE.USEREXTRA)[0]
except IndexError:
error_logger.error(u'获取人脸失败')
return
except:
error_logger.error(u'上传失败')
return
result = self.rpc['venus/sun/user/create_update_image'](
url=image_url, user_id=user_id).unwrap()
return {
'message': '创建成功' if result else '创建失败'
}
result = self.rpc['venus/sun/user/create_update_image'](
image_url=image_url, user_id=user_id, image_id=image_id).unwrap()
except Exception as e:
raise e
return self.write_fail(
code=-1 if result else 0,
message="成功" if result else "失败"
)
def get(self, request):
user_id = request.GET.get('user_id')
offset = int(request.GET.get('page', 1))
count = int(request.GET.get('limit', 10))
if not user_id:
error_logger.error(u'参数不完整')
return self.write_fail(code=ERROR.ARG_MISS, message='参数不完整')
try:
data = self.rpc['venus/sun/user/user_image_list'](
user_id=user_id, offset=(offset - 1) * count, limit=count).unwrap()
except Exception as e:
error_logger.error(u'获取%s用户头像失败%s' % (id, e))
error_logger.error(u'获取%s用户头像失败%s' % (user_id, e))
raise
return data
......@@ -156,4 +156,4 @@ PUPPET_PASSWORD = 123456
OPERATOR_PASSWORD = 123456
# 图片下载的存储路径
DOWNLOAD_IMAGE_PATH = u'/header-images/'
DOWNLOAD_IMAGE_PATH = u'/data/header-images/'
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment