Qt 및 Qt Graphics API를 처음 사용했습니다.QPixMap의 일부를 더 작은 QPixMap으로 바꿉니다.
나는 더 큰 QPixMap
및 더 작은 QPixMap
을가집니다. 큰 부분의 부분 (QRect
)을 작은 부분으로 교체해야합니다.
어떻게해야합니까?
감사합니다.
UPDATE
QPainter::drawPixmap()
는 pImage-> p_PixMap로 표시되는 화상을 갱신하지 않는다.
코드
class GraphicImage : public QObject,
public QGraphicsPixmapItem
{
Q_OBJECT
public:
GraphicImage(QPixmap* oImage,GraphiItemCtrl* pParent);
virtual ~GraphicImage(void);
QPixmap* p_PixMap;
};
- - - -
GraphicImage::GraphicImage(QPixmap* oImage,GraphiItemCtrl* pParent)
:QGraphicsPixmapItem(*oImage), p_Parent(pParent)
{
p_PixMap = oImage;
}
- - - -
void GraphiItemCtrl::SetImagePortion(QString sFileName, QRect rect, QPixmap pChildPixMap)
{
GraphicImage* pImage = map_CurrentImages[sFileName];
if (!pImage)
return;
pChildPixMap.save("test.jpg");
QPixmap* pMap = pImage->p_PixMap;
QPainter pPainter(pMap);
pPainter.drawPixmap(rect, pChildPixMap);
qDebug() << rect.topLeft();
}
pChildPixMap.save("test.jpg");
문제없이 이미지의 필요한 부분을 절약 할 수 있습니다.
참고 : pImage
는 QObject를하고 QGraphicsPixmapItem에서 상속됩니다. pMap
은 아니다 NULL
이 질문에 대한 답변은 http : // stackoverflow를 참조하십시오.com/questions/17888795/how-to-use-qpainter-on-qpixmap – zeFrenchy