【发布时间】:2011-09-14 16:18:11
【问题描述】:
我正在编写一个可在 Mac 和 Win 上运行的 GUI 应用程序,但有一个小问题,我不知道如何解决。 在我的应用程序中,我有一个小的(250 x 250 像素)预览窗口(我们称之为 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 框架和QGraphicsView、QGraphicsScene 和QGraphicsPixmapItem。
【问题讨论】: