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