2015-05-06 11 views
1

У меня проблема при масштабировании и преобразовании QGraphicsPixmapItem. Я создал графический редактор, в котором я использую QGraphicsItem начального размера 100 100, после чего я изменяю размер и поворачиваю его на setTransform().Масштабирование и преобразование Qgraphicspixmapitem

После того, что я храню это преобразование и использование их для моего другого приложения называется игроком, в котором я использую те преобразования и показывать изображения и видео на него, я использую 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

Вы можете использовать setTransformationMode функции, чтобы установить режим преобразования растрового изображения элемента. Значение по умолчанию: Qt::FastTransformation. Вы должны установить режим преобразования в Qt::SmoothTransformation для включения билинейной фильтрации, что приводит к улучшению качества при масштабировании:

pixitem->setTransformationMode(Qt::SmoothTransformation); 
+0

Спасибо за ответ Netaj. Изображение более ясно, чем раньше, но не так, как с его исходными пикселями. Есть ли способ предотвратить оригинальную ясность. –

+0

При масштабировании снижение качества неизбежно. Такие методы, как плавное преобразование, просто улучшают его, и больше ничего нельзя сделать. – Nejat

+0

Спасибо, что ответили :) –