缩放和变换 Qgraphicspixmapitem
Posted
技术标签:
【中文标题】缩放和变换 Qgraphicspixmapitem【英文标题】:Scaled and transform Qgraphicspixmapitem 【发布时间】:2015-05-06 06:12:56 【问题描述】:我在缩放和转换 QGraphicsPixmapItem
时遇到问题。我创建了图形编辑器,其中我使用初始大小为 100,100 的 QGraphicsItem
,之后我通过 setTransform()
方法调整和旋转它。
之后,我存储此转换并将其用于我的另一个名为 player 的应用程序,我在其中使用这些转换并在其上显示图像和视频,如果我设置缩放和@,我现在使用 QgraphicsPixmapItem
显示图像987654325@ 图像清晰度的方法被破坏了。
是否可以保持清晰,即使我缩放和转换它。我使用的图像是 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】:您可以使用setTransformationMode
函数来设置像素图项的转换模式。默认值为Qt::FastTransformation
。您应该将转换模式设置为 Qt::SmoothTransformation
以启用双线性过滤,从而在缩放时产生更好的质量:
pixitem->setTransformationMode(Qt::SmoothTransformation);
【讨论】:
感谢 Netaj 的回复。图像比以前更清晰,但不像原始像素那样清晰。有什么办法可以防止原始清晰度。 缩放时,质量下降是不可避免的。平滑变换之类的技术只会让它变得更好,没有什么可以做的。 感谢您的回复:) 使用带有 QGraphicsSvgItem 的 SVG 图像可以帮助保持质量 @Arun , QGraphicsSvgItem 似乎只处理 svg 文件?其他文件呢?以上是关于缩放和变换 Qgraphicspixmapitem的主要内容,如果未能解决你的问题,请参考以下文章