Доброго времени суток, есть задача:
Есть Widget с фиксированными размерами, в нём есть BoxLayout, этот самый BoxLayout должен быть максимально допустимых размеров-то есть либо высота, как у виджета, либо ширина, либо и то и другое
Фоном в этом BoxLayout служит картинка, при чем рандомная
И вся проблема в том, что у виджета-то соотношения сторон всегда одинаковые, а картинки бывают разные, следовательно, нужно сделать так, чтобы размеры вложенного в виджет BoxLayout адаптировались под картинку
На примере:
Пусть виджет 2000x1000
Картинка 300x100, картинка помещается в BoxLayout и вместе с ним растягивается
Так как у картинки ширина больше, делаем ширину равной ширине виджета, то есть 2000
Соответственно, высота картинки должна увеличиться в пропорции: 100 * (2000 / 300) = 100 * 6.(6) = 666.(6)
Если бы была работа с каким-нибудь opencv, через resize вся логика без проблем прописывалась бы, но ведь kivy изменяет размер изображения под капотом и не даёт какого-то API для работы с этим
Понятно, что можно измерить сначала изображение, создать его копию, поместить в виджет, после закрытия приложения эту копию удалить (исходное изображение менять нельзя), но это невиданных размеров костыль
Есть какие-то гармоничные решения, может быть даже средствами kivy?