728x90
반응형

QPixmap은 PyQt5에서 이미지를 다룰 때 사용되는 대표적인 클래스입니다. 주로 이미지의 표시, 조작, 저장 등에 사용됩니다. 이번 포스팅에서는 QPixmap을 활용해 간단히 이미지를 표시하는 예제를 소개합니다.


샘플 코드: QPixmap으로 이미지 표시

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt5.QtGui import QPixmap


class MyApp(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 1. QLabel 생성
        label = QLabel(self)

        # 2. QPixmap 생성 및 이미지 로드
        pixmap = QPixmap('../img/20231014_164906.jpg')  # 이미지 파일 경로
        pixmap = pixmap.scaled(500, 300)
        label.setPixmap(pixmap)

        # 3. 레이아웃 설정
        vbox = QVBoxLayout()
        vbox.addWidget(label)
        self.setLayout(vbox)

        # 4. 윈도우 설정
        self.setWindowTitle('QPixmap Example')
        self.setGeometry(300, 300, pixmap.width(), pixmap.height())
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    sys.exit(app.exec_())

 


코드 설명

1. QLabel 생성

label = QLabel(self)

 

  • 이미지를 표시할 QLabel 위젯을 생성합니다.
  • QPixmap은 QLabel에 이미지를 연결하여 화면에 표시합니다.

2. QPixmap 생성 및 이미지 로드

pixmap = QPixmap('../img/20231014_164906.jpg')  # 이미지 파일 경로
label.setPixmap(pixmap)

 

 

  • QPixmap('파일 경로'): 지정된 경로의 이미지를 불러옵니다.
  • label.setPixmap(pixmap): QLabel에 QPixmap을 연결하여 이미지를 표시합니다.
  • 이미지 파일은 현재 코드와 동일한 디렉토리에 있어야 합니다.
    • 경로가 다를 경우 전체 경로나 상대 경로를 정확히 지정해 주세요.

3. 레이아웃 설정

vbox = QVBoxLayout()
vbox.addWidget(label)
self.setLayout(vbox)

 

 

  • QVBoxLayout을 이용해 QLabel을 레이아웃에 추가합니다.
  • 이미지를 추가한 레이아웃을 현재 창에 설정합니다.

4. 윈도우 설정

self.setGeometry(300, 300, pixmap.width(), pixmap.height())

 

 

  • 이미지의 크기에 맞춰 윈도우 크기를 동적으로 설정합니다.
  • pixmap.width()와 pixmap.height()를 사용해 이미지의 크기를 가져옵니다.

 

실행 결과

코드를 실행하면 지정한 이미지 파일이 새로운 창에 표시됩니다.

 

728x90

주요 메서드 및 속성

메서드/속성설명

QPixmap('파일 경로') 지정된 경로의 이미지를 불러옵니다.
label.setPixmap(pixmap) QLabel에 QPixmap 객체를 설정합니다.
pixmap.width() 이미지의 너비를 반환합니다.
pixmap.height() 이미지의 높이를 반환합니다.
pixmap.scaled(width, height) 이미지를 지정한 크기로 조정한 새로운 QPixmap 객체를 반환합니다. (비율 유지 옵션을 함께 설정 가능)
pixmap.save('저장 경로') 현재 QPixmap 객체를 파일로 저장합니다.

 


활용 팁

pixmap = pixmap.scaled(200, 200)
  1. 이미지 크기 조정
    • scaled() 메서드를 사용해 이미지를 특정 크기로 조정할 수 있습니다.
    • 원본 비율을 유지하려면 Qt.KeepAspectRatio 옵션을 사용할 수 있습니다.
  2. 이미지 파일 경로
    • 이미지를 프로젝트와 동일한 디렉토리에 두거나, 전체 경로를 명시적으로 작성하세요.
  3. QPixmap과 QImage의 차이
    • QPixmap: 렌더링에 최적화된 클래스. 주로 화면 표시용.
    • QImage: 이미지 데이터의 읽기/쓰기, 픽셀 조작에 적합.

결론

QPixmap은 PyQt5에서 이미지를 표시하는 데 필수적인 클래스입니다. 이번 예제를 참고하여 프로젝트에 이미지를 손쉽게 추가해 보세요!

다음 포스팅에서는 QPixmap을 활용한 이미지 크기 조정과 저장 방법에 대해 다뤄보겠습니다. 😊

728x90
반응형

+ Recent posts