fix:减小图片分辨率 修复小图片被放大的问题

This commit is contained in:
Kakune55 2024-05-09 12:17:16 +08:00
parent 591bf9d5d8
commit c49cee4c30
2 changed files with 13 additions and 7 deletions

View File

@ -67,14 +67,20 @@ def raedZip(bookid: str, index: int):
return str(e), ""
def thumbnail(input, minSize: int = 600):
def thumbnail(input, minSize: int = 600, encode:str="webp"):
img = cv2.imdecode(np.frombuffer(input, np.uint8), cv2.IMREAD_COLOR)
height = img.shape[0] # 图片高度
width = img.shape[1] # 图片宽度
if minSize < np.amin(height,width):
if height > width:
newshape = (minSize, int(minSize / width * height))
else:
newshape = (int(minSize / height * width), minSize)
img = cv2.resize(img, newshape)
if encode == "webp":
success, encoded_image = cv2.imencode(".webp", img, [cv2.IMWRITE_WEBP_QUALITY, 75])
elif encode == "jpg":
success, encoded_image = cv2.imencode(".jpg", img, [cv2.IMWRITE_JPEG_QUALITY, 75])
else:
return input
return encoded_image.tobytes()

View File

@ -18,7 +18,7 @@ def img(bookid, index): # 图片接口
if request.args.get("mini") == "yes":
data = file.thumbnail(data)
else:
data = file.thumbnail(data,2400)
data = file.thumbnail(data,1500)
response = make_response(data) # 读取文件
del data
response.headers.set("Content-Type", "image/Webp")