19 lines
528 B
Python
19 lines
528 B
Python
import math
|
|
|
|
|
|
def rgba_to_hex(rgba: list) -> str:
|
|
return "#{:02x}{:02x}{:02x}".format(*rgba)
|
|
|
|
|
|
def calculate_optimal_size(width: int, height: int, bitmap_size: int) -> tuple:
|
|
image_area = width * height
|
|
bitmap_area = bitmap_size**2
|
|
scale = math.sqrt(bitmap_area / image_area) if image_area > bitmap_area else 1
|
|
new_width = round(width * scale)
|
|
new_height = round(height * scale)
|
|
if new_width == 0:
|
|
new_width = 1
|
|
if new_height == 0:
|
|
new_height = 1
|
|
return new_width, new_height
|