QPixmap은 주로 그리기에 사용되며 이미지 표시에 최적화되어 있습니다. QImage는 주로 이미지 I/O, 이미지 액세스 및 픽셀 수정을 위해 설계되었습니다. 그러나 QPixmap을 사용하여 큰 사진을 로드하면 많은 메모리를 차지하므로 작은 사진을 로드하는 데 적합합니다. 로드된 후 수십 K의 사진이 여러 번 확대됩니다.
이미지가 너무 크면 QImage를 사용하여 로드한 다음 QPixmap으로 변환하여 사용자 그리기 효과를 얻을 수 있습니다.
void Dialog::paintEvent(QPaintEvent *) { QPainter painter(this); QPixmap pix; pix.load(“D:/1.jpg”); painter.drawPixmap(0,0,50,50,pix); //在(0,0)点起始的宽高均为50的句型中显示图片 painter.translate(50,50); //将起始点改为(50,50) painter.drawPixmap(0,0,50,50,pix); //在(50,50)起始的宽高为50的矩形中显示图片 }
QPixmap 클래스의 scaled() 함수를 사용하여 이미지를 확대하거나 축소할 수 있습니다. 이 함수는 지정된 모드에 따라 주어진 너비와 높이를 갖도록 크기가 조정된 직사각형의 크기를 반환합니다.
void Dialog::paintEvent(QPaintEvent *) { QPainter painter(this); QPixmap pix; pix.load(“D:/1.jpg”); painter.drawPixmap(0,0,50,50,pix); //在(0,0)点起始的宽高均为50的句型中显示图片 qreal wid = pix.width(); //获取图像的宽高 qreal hei = pix.height(); pix = pix.scaled(wid*2,hei*2,Qt::KeepAspectRatio);//将图片宽高扩大两倍,且在矩形内保持宽高比值 painter.drawPixmap(50,50,pix); }
QPainter 클래스의 Rotate() 함수를 사용하여 이미지 회전을 달성할 수 있습니다. 기본값은 원점을 중심으로 회전하는 것입니다.
void Dialog::paintEvent(QPaintEvent *) { QPainter painter(this); QPixmap pix; pix.load(“D:/1.jpg”); painter.translate(50,50); //将旋转中心改为(50,50) painter.rotate(90); //顺时针旋转90度 painter.translate(-50,-50); painter.drawPixmap(0,0,50,50,pix); }
원하는 효과를 얻으려면 먼저 회전 중심을 변경한 다음 다시 회전한 다음 원점을 복원해야 합니다.
QPainter 클래스의 shear(qreal sh, qreal sv) 함수를 사용하여 이미지 왜곡을 구현합니다. 매개변수 1은 수평 변형을 구현하고 매개변수 2는 세로 변형을 구현합니다. 값이 0이면 왜곡이 없음을 의미합니다.化 이미지 형태의 변화는 좌표계의 변화에 의해 이루어진다.
아아아아위 내용은 Python에서 QPixmap을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!