Преобразования Scale и Rotation принимают точку, называемую transformOrigin, в качестве ориентира, в вашем случае это точка, относительно которой вращается изображение, поэтому вы, вероятно, устанавливаете центр изображения, если вы меняете положение вращения будет другим.
В вашем случае общее решение для любого размера:
transform: Rotation{
id: rotateImagePhoto
angle: 90
origin.x: imagePhoto.width/2
origin.y: imagePhoto.height/2
}
Или лучше, используя rotation
.
Image {
id: imagePhoto
anchors.fill: parent
width: parent.width
height: parent.height
transformOrigin: Item.Center
rotation: 90
}
Эта точка является фиксированной точкой, то есть она будет оставаться неизменной до поворота, например, давайте установим точку в topLeft и повернем на 30 градусов:
transform: Rotation{
id: rotateImagePhoto
angle: 30
origin.x: 0
origin.y: 0
}
![enter image description here](https://i.stack.imgur.com/Nl6Rj.png)
Обратите внимание, что точка topLeft
не сместилась и является центром вращения.
В заключение, в случае вращения источником является центр вращения.