缩放和转换Qgraphicspixmapitem

时间:2015-05-06 06:12:57

标签: c++ qt transformation image-quality qgraphicspixmapitem

我在缩放和转换QGraphicsPixmapItem时遇到了问题。我创建了图形编辑器,其中我使用初始大小为100,100的QGraphicsItem,之后我调整大小并按setTransform()方法旋转它。

之后我将存储此变换并将其用于我的另一个名为player的应用程序,其中我正在使用这些转换并在其上显示图像和视频,如果我设置缩放,我现在使用QgraphicsPixmapItem来显示图像和setTransform方法对其清晰度进行成像会被破坏。

即使我缩放并转换它也可以保持清晰度。我使用的图像是2560x1440像素。 任何帮助将不胜感激。

代码是:

QGraphicsPixmapItem *pixitem = new QGraphicsPixmapItem;
pixitem->setFlags(QGraphicsItem::ItemIsMovable);
pixitem->setPos(50,50);
QTransform trans;
trans.setMatrix(4.20399,2.9286,0,-3.86601,0.761397,0,33.1015,-134.5,1);
pixitem->setPixmap(QPixmap("abc.jpg").scaled(100,100));
pixitem->setTransform(trans);
pixitem->setShapeMode(QGraphicsPixmapItem::MaskShape);
scene->addItem(pixitem);

1 个答案:

答案 0 :(得分:1)

您可以使用setTransformationMode函数设置像素图项目的转换模式。默认值为Qt::FastTransformation。您应该将变换模式设置为Qt::SmoothTransformation以启用双线性过滤,从而在缩放时获得更好的质量:

pixitem->setTransformationMode(Qt::SmoothTransformation);