生成签名图片优化

This commit is contained in:
caoqianming 2022-01-27 13:21:12 +08:00
parent 81de7a5349
commit 64b2cf06e3
1 changed files with 26 additions and 12 deletions

View File

@ -6,10 +6,9 @@ from PIL import Image
from django.conf import settings
from rest_framework import status
from datetime import datetime
import os
import uuid
import cv2
from server.settings import BASE_DIR
import numpy as np
# class UploadFileView(APIView):
# permission_classes = [IsAuthenticated]
@ -39,16 +38,31 @@ class GenSignature(APIView):
def post(self, request, *args, **kwargs):
path = (BASE_DIR + request.data['path']).replace('\\', '/')
image = cv2.imread(path, cv2.IMREAD_UNCHANGED)
size = image.shape
for i in range(size[0]):
for j in range(size[1]):
if image[i][j][0]>100 and image[i][j][1]>100 and image[i][j][2]>100:
image[i][j][3] = 0
else:
image[i][j][0],image[i][j][1],image[i][j][2] = 0,0,0
cv2.imwrite(path,image)
return Response(request.data, status=status.HTTP_200_OK)
try:
image = cv2.imread(path, cv2.IMREAD_UNCHANGED)
size = image.shape
width = size[0] # 宽度
height = size[1] # 高度
if size[2] != 4: # 判断
background = np.zeros((size[0], size[1], 4))
for yh in range(height):
for xw in range(width):
background[xw, yh, :3] = image[xw, yh]
background[xw, yh, 3] = 255
image = background
size = image.shape
for i in range(size[0]):
for j in range(size[1]):
if image[i][j][0]>100 and image[i][j][1]>100 and image[i][j][2]>100:
image[i][j][3] = 0
else:
image[i][j][0],image[i][j][1],image[i][j][2] = 0,0,0
cv2.imwrite(path,image)
return Response(request.data, status=status.HTTP_200_OK)
except:
return Response('签名照处理失败,请重新上传',
status=status.HTTP_400_BAD_REQUEST)
import time
class UpdateDevelop(APIView):