Я пишу приложение с графическим интерфейсом, которое работает на Mac и Win, и есть одна маленькая проблема, которую я не знаю, как ее решить.В моем приложении у меня есть небольшое (250 x 250 px) окно предварительного просмотра (пусть назовем его SW), в которое помещается изображение.Изображение может быть намного больше, чем SW.Где-то у меня есть слайдер, который реализует функцию масштабирования изображения внутри SW.Моя главная проблема - реализовать функцию масштабирования на этом изображении.
При вводе у меня есть:
- исходное изображение, его ширина и высота;
- просмотреть изображение - этоувеличенная копия исходного изображения;
- позиция увеличенного изображения
- размер области просмотра составляет 250 x 250 пикселей
Это должно работать как увеличение в программах обработки изображений.Когда мы меняем значение масштабирования, изображение становится меньше или больше относительно центра области просмотра и положения изображения внутри него.Мы можем переместить изображение внутри области просмотра.Для правильной реализации этой задачи нам нужно рассчитать размер изображения и положение в нашем представлении.Я уже написал некоторый "алгоритм", который реализует изменение размера изображения.Это выглядит так:
float one = (source_original_size - thumbnail_size) / 100;
int bigger_side_size = qRound((100-value) * one) + thumbnail_size;
Но я не представляю, как можно рассчитать положение на сцене этого увеличенного изображения.
Кто-нибудь может мне помочь с идеями?
Если это важно, я использую Qt Framework и QGraphicsView
, QGraphicsScene
и QGraphicsPixmapItem
.