feat: add image resizing functionality to limit height to 50px during game addition
This commit is contained in:
parent
4072b9e606
commit
47dade0384
@ -8,6 +8,7 @@ from datetime import datetime
|
|||||||
import requests
|
import requests
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
import base64
|
import base64
|
||||||
|
from PIL import Image
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(app.instance_path, 'games.db')
|
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(app.instance_path, 'games.db')
|
||||||
@ -25,6 +26,14 @@ def encode_image_to_base64(image_path):
|
|||||||
with open(image_path, "rb") as image_file:
|
with open(image_path, "rb") as image_file:
|
||||||
return base64.b64encode(image_file.read()).decode('utf-8')
|
return base64.b64encode(image_file.read()).decode('utf-8')
|
||||||
|
|
||||||
|
def resize_image(image_path, max_height=50):
|
||||||
|
with Image.open(image_path) as img:
|
||||||
|
aspect_ratio = img.width / img.height
|
||||||
|
new_height = min(max_height, img.height)
|
||||||
|
new_width = int(aspect_ratio * new_height)
|
||||||
|
img = img.resize((new_width, new_height), Image.ANTIALIAS)
|
||||||
|
img.save(image_path)
|
||||||
|
|
||||||
@app.route('/games', methods=['POST'])
|
@app.route('/games', methods=['POST'])
|
||||||
def add_game():
|
def add_game():
|
||||||
if not authenticate():
|
if not authenticate():
|
||||||
@ -40,6 +49,9 @@ def add_game():
|
|||||||
local_image_path = os.path.join(app.instance_path, image_filename)
|
local_image_path = os.path.join(app.instance_path, image_filename)
|
||||||
with open(local_image_path, 'wb') as f:
|
with open(local_image_path, 'wb') as f:
|
||||||
f.write(image_response.content)
|
f.write(image_response.content)
|
||||||
|
|
||||||
|
# Resize the image
|
||||||
|
resize_image(local_image_path)
|
||||||
else:
|
else:
|
||||||
return jsonify({'message': 'Image could not be downloaded!'}), 400
|
return jsonify({'message': 'Image could not be downloaded!'}), 400
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user