У меня есть QIMage, который может быть в портретном или альбомном режиме в зависимости от его < em> ширина против высоты. Или наоборот.
Я пытаюсь уместить портретный QIMage в альбомном режиме и альбомный QImage в портретном режиме без нарушения соотношения сторон.
Вот как я пытаюсь это сделать:
Window {
id: app_window
visible: true
Rectangle {
id: my_image_view_container
width: my_image.sourceSize.width
height: my_image.sourceSize.height
// This is a Image item which has to host a portrait/landscape image.jpg in both portrait & landscape modes on an android device
Image {
id: my_image
anchors.fill: parent
// changes at runtime based on the image my app selects
source: "random/path/to/an/image.jpg"
scale: Qt.KeepAspectRatio
}
}
}
Это в основном работает, чтобы сохранить соотношение сторон. Изображение не искажается, когда я изменяю размер своего app_window
с книжного на альбомный.
Проблема:
Но в ландшафтном режиме, если высота app_window
меньше высоты my_image
, изображение не полностью видно.
Вопрос:
Как мне установить размер my_image_view_container
& my_image
, чтобы иметь возможность выполнять хостинг image.jpg
как в альбомной, так и в портретной ориентации, не нарушая соотношение сторон, а также не пропуская для просмотра частей изображения в любой режим?
PS:
Проблема, например: Я беру снимок QML и создаю QImage, который имеет ширину 100 единиц на высоту 300 единиц. Теперь измените ориентацию мобильного устройства или измените размер окна на рабочем столе на альбомный. Теперь мне нужно уместить QIMage, высота которого составляет 300 единиц, на высоту 100 единиц. Как установить ширину и высоту QIMage, чтобы это было удобно? Я вижу, что Google Фото на Android прекрасно справляется с этим, вставляя черный цвет с обеих сторон изображения, когда вы просматриваете снимок портретной съемки в ландшафтном режиме и наоборот. Я хочу добиться именно такой функциональности Google Фото. Должно быть возможно, установив правильную ширину и высоту элемента Image QML?