mirror of
				https://github.com/Kakune55/ComiPy.git
				synced 2025-11-03 14:04:41 +08:00 
			
		
		
		
	fix:减小图片分辨率 修复小图片被放大的问题
This commit is contained in:
		
							
								
								
									
										8
									
								
								file.py
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								file.py
									
									
									
									
									
								
							@@ -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()
 | 
			
		||||
 
 | 
			
		||||
@@ -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")
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user