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
|