2016-06-08 6 views
2

QPixmap이 있는데 창 크기가 조정됨에 따라 비율에 따라 크기가 조정됩니다. 이미지가 처음로드되면 그 비율에 대해 선명하고 명확하지만 이미지의 크기를 조정하면 모든 이미지가 왜곡됩니다. 이에 Image before resizing window : 그것은이에서 이동 관리 Image before resizing windowQt | QPixmap 크기 조정이 잘못되었습니다.

관련 코드 :

void MainWindow::resizeEvent(QResizeEvent *) 
{ 
    QPixmap pix = ui->labelImage->pixmap()->scaled(ui->labelImage->size(), 
                Qt::KeepAspectRatio); 
    ui->labelImage->setPixmap(pix); 
} 

답변

4

당신은 조정 픽스맵를 작성 후 스케일링, 위젯에서 현재 픽스맵을 읽기,하고 위젯에. 위젯이 매우 작아 져서 크기가 훨씬 커지면 어떤 일이 일어날 지 생각해보십시오. 스케일링 변환을 사용하면 많은 인공물을 얻을 수 있습니다.

나는
QPixmap m_original_pixmap; 

이 그런 다음 resizeEvent 멤버에 그의 확장 버전을 사용 ... 더 나은 방법이 MainWindow를 클래스, 말의 멤버에 원래의 전체 크기의 이미지를 저장하는 것 같아요 ..

모든 항목을 지우지 만 일부 아티팩트를 제거해야하는지 확실하지 않은지 확인하십시오.

이미지 품질에 관심이 있다면 스케일링 작업에서 Qt :: SmoothTransformation을 픽스맵 변환 모드로 지정하는 것이 좋습니다.

+0

이것은 효과가 있습니다. 나는 그것에 대해 생각했지만 실제로 그것을하지는 않았다. 현재 pixmap을 전역 변수로 추가하면 멋지게 작동합니다. –

관련 문제