1. 코드

from PyQt5.QtWidgets import QWidget, QApplication, QLabel, QVBoxLayout, QPushButton
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap
import sys
import urllib.request 

class 그림위젯(QWidget):

    def __init__(self):
        super().__init__()
        self.UI초기화()

    def UI초기화(self):
        self.img = QPixmap() 
     
        url ='<http://www.paullab.co.kr/images/logo_weniv.png>'
				webImg = urllib.request.urlopen(url).read()

        self.img.loadFromData(webImg) 
       
        self.label_img = QLabel()  
        self.label_img.setPixmap(self.img)  
        self.label_img.setAlignment(Qt.AlignCenter)  
        self.label_size = QLabel(f'가로 : {self.img.width()}/세로 : {self.img.height()}')  
        self.label_size.setAlignment(Qt.AlignCenter)

        loadBtn = QPushButton('이미지 변경')
        loadBtn.clicked.connect(self.changeImage)

        saveBtn = QPushButton('저장')
        saveBtn.clicked.connect(self.saveImage)

        vbox = QVBoxLayout()
        vbox.addWidget(self.label_img)
        vbox.addWidget(self.label_size)
        vbox.addWidget(loadBtn)
        vbox.addWidget(saveBtn)
        self.setLayout(vbox)

        self.setWindowTitle('QPixmap')
        self.setGeometry(300, 300, 400, 300)
        self.show()

    def changeImage(self): 
        self.img.load('img/weniv-mura.png') 
        self.label_img.setPixmap(self.img)
        self.label_size.setText(f'가로 : {self.img.width()}/세로 : {self.img.height()}') 

    def saveImage(self):
        self.img = self.label_img.pixmap() 
        self.img.save('저장된 이미지.png')        

프로그램무한반복 = QApplication(sys.argv)
실행인스턴스 = 그림위젯()
프로그램무한반복.exec_()

2. 상세 내용

QtGui 중에서도 대표적인 기능 중 하나인 QPixmap은 이미지 처리와 관련된 여러 기능들을 지원합니다. 저장, 사이즈 변경 등에 다양한 메서드를 지원하니 공식 문서도 한 번 참고 바랍니다. 여기서는 이미지 출력, 이미지 저장, 사이즈 지정 출력에 대해 실습해보도록 하겠습니다.

QPixmap - Qt for Python

import urllib.request

class 그림위젯(QWidget):

    def __init__(self):
        super().__init__()
        self.UI초기화()

    def UI초기화(self):
        self.img = QPixmap()

        url ='<http://www.paullab.co.kr/images/logo_weniv.png>'
        webImg = urllib.request.urlopen(url).read()

        self.img.loadFromData(webImg)

        self.label_img = QLabel()
        self.label_img.setPixmap(self.img)
        self.label_img.setAlignment(Qt.AlignCenter)
        self.label_size = QLabel(f'가로 : {self.img.width()}/세로 : {self.img.height()}')
        self.label_size.setAlignment(Qt.AlignCenter)
loadBtn = QPushButton('이미지 변경')
loadBtn.clicked.connect(self.ChangeImage)

saveBtn = QPushButton('저장')
saveBtn.clicked.connect(self.saveImage)
def ChangeImage(self):
    self.img.load('img/weniv-mura.png')
    self.label_img.setPixmap(self.img)
    self.label_size.setText(f'가로 : {self.img.width()}/세로 : {self.img.height()}') 
def saveImage(self):
    self.img = self.label_img.pixmap()
    self.img.save('저장된 이미지.png')