Files
api2/api/lib/limits.py
T
2019-10-30 13:44:04 +01:00

53 lines
1.6 KiB
Python

# coding=UTF-8
CANVAS = {
"max_long_side": 500,
"min_long_side": 20,
"max_short_side": 150,
"min_short_side": 20,
}
CANVAS_FRAME = {
"max_long_side": 150,
"min_long_side": 40,
"max_short_side": 150,
"min_short_side": 40,
}
def calculate_canvas_frame_limits(width, height):
if width > height:
width = min(width, CANVAS_FRAME.get("max_long_side"))
width = max(width, CANVAS_FRAME.get("min_long_side"))
height = min(height, CANVAS_FRAME.get("max_short_side"))
height = max(height, CANVAS_FRAME.get("min_short_side"))
else:
height = min(height, CANVAS_FRAME.get("max_long_side"))
height = max(height, CANVAS_FRAME.get("min_long_side"))
width = min(width, CANVAS_FRAME.get("max_short_side"))
width = max(width, CANVAS_FRAME.get("min_short_side"))
# round to nearest 10
width = round(width, -1)
height = round(height, -1)
return width, height
def calculate_canvas_limits(width, height, framed=False):
if framed:
return calculate_canvas_frame_limits(width, height)
if width > height:
width = min(width, CANVAS.get("max_long_side"))
width = max(width, CANVAS.get("min_long_side"))
height = min(height, CANVAS.get("max_short_side"))
height = max(height, CANVAS.get("min_short_side"))
else:
height = min(height, CANVAS.get("max_long_side"))
height = max(height, CANVAS.get("min_long_side"))
width = min(width, CANVAS.get("max_short_side"))
width = max(width, CANVAS.get("min_short_side"))
return width, height