在预览中放大图像

时间:2011-09-14 16:18:12

标签: c++ image qt zoom image-zoom

我正在编写一个适用于Mac和Win的GUI应用程序,并且有一个小问题,我不知道如何解决。 在我的应用程序中,我有一个小的(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框架和QGraphicsViewQGraphicsSceneQGraphicsPixmapItem

1 个答案:

答案 0 :(得分:1)

查看Image Viewer Example,它有一些您正在寻找的功能。