Увеличить изображение внутри предварительного просмотра - PullRequest
0 голосов
/ 14 сентября 2011

Я пишу приложение с графическим интерфейсом, которое работает на 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.

1 Ответ

1 голос
/ 14 сентября 2011

Посмотрите на Пример просмотра изображений , он имеет некоторые функции, которые вы ищете.

...