53 lines
1.6 KiB
Python
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
|