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 @@ ...@@ -5,7 +5,8 @@
import json import json
from django.conf import settings 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 utils.base import APIView
from django.contrib.auth.hashers import make_password from django.contrib.auth.hashers import make_password
...@@ -106,49 +107,56 @@ class UserImage(APIView): ...@@ -106,49 +107,56 @@ class UserImage(APIView):
if not all([image_id, image_url, user_id]): if not all([image_id, image_url, user_id]):
error_logger.error(u'参数不完整') error_logger.error(u'参数不完整')
return return self.write_fail(code=ERROR.ARG_MISS, message='参数不完整')
err, data = self.rpc['saber/face/detect'](url=image_url).unwrap()
if err: resp = self.rpc['venus/sun/user/check_image'](
error_logger.error(u'获取人脸失败') user_id=user_id, image_id=image_id).unwrap()
faces = [ if resp:
{ return self.write_success(data='', message='操作成功')
"point": [ # 目前不需要 从图片中切出人脸
item["rect"]["left"], # try:
item["rect"]["top"], # data = self.rpc['saber/face/detect'](url=image_url).unwrap()
item["rect"]["right"]-item["rect"]["left"], # except Exception as e:
item["rect"]["bottom"]-item["rect"]["top"], # error_logger.error(u'分析人脸失败:%s', e)
] # return self.write_fail(code=-1, message='分析人脸失败')
}
for item in data.get("faces", []) # 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: try:
point = faces[0].get('point', []) result = self.rpc['venus/sun/user/create_update_image'](
file_path = download_img_func(image_url, user_id, suffix="png") image_url=image_url, user_id=user_id, image_id=image_id).unwrap()
images = tailor_image(file_path, point) except Exception as e:
header_pic_path = images[0] raise e
with open(header_pic_path, 'rb') as f: return self.write_fail(
image_url = upload_with_short(f, img_type=IMG_TYPE.USEREXTRA)[0] code=-1 if result else 0,
except IndexError: message="成功" if result else "失败"
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 '创建失败'
}
def get(self, request): def get(self, request):
user_id = request.GET.get('user_id') user_id = request.GET.get('user_id')
offset = int(request.GET.get('page', 1)) offset = int(request.GET.get('page', 1))
count = int(request.GET.get('limit', 10)) 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: try:
data = self.rpc['venus/sun/user/user_image_list']( data = self.rpc['venus/sun/user/user_image_list'](
user_id=user_id, offset=(offset - 1) * count, limit=count).unwrap() user_id=user_id, offset=(offset - 1) * count, limit=count).unwrap()
except Exception as e: except Exception as e:
error_logger.error(u'获取%s用户头像失败%s' % (id, e)) error_logger.error(u'获取%s用户头像失败%s' % (user_id, e))
raise raise
return data return data
...@@ -156,4 +156,4 @@ PUPPET_PASSWORD = 123456 ...@@ -156,4 +156,4 @@ PUPPET_PASSWORD = 123456
OPERATOR_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