PyQT5 - 랜덤 컬러 그리드 생성하기Qt/PyQt5 강좌2024. 4. 17. 21:22
Table of Contents
반응형
PyQt5를 사용하여 격자에 랜덤으로 컬러 그리드를 생성한 예제입니다.
2024. 4. 17 최초작성
import sys import numpy as np from PyQt5.QtWidgets import QApplication, QDialog, QLabel, QVBoxLayout from PyQt5.QtGui import QPixmap, QImage from PyQt5.QtCore import QThread, pyqtSignal import matplotlib class Thread(QThread): updated = pyqtSignal(np.ndarray) def run(self): while True: original_array = np.random.randint(0, 256, (5, 5)) self.updated.emit(original_array) QThread.sleep(1) class ImageDialog(QDialog): def __init__(self): super().__init__() self.initUI() self.update_thread = Thread() self.update_thread.updated.connect(self.updateImage) self.update_thread.start() def initUI(self): self.setWindowTitle('inferno') self.label = QLabel(self) self.layout = QVBoxLayout() self.layout.addWidget(self.label) self.setLayout(self.layout) def updateImage(self, original_array): # 'plasma' 컬러맵을 사용하여 각 값에 대응하는 RGB 색상 계산. 0 ~ 1 사이 값으로 구성 cmap = matplotlib.colormaps['plasma'] # RGB 색상 선택. original_array는 0~255 사이값이고 cmap을 선택 rgb_colors = cmap(original_array)[:,:,:3] # RGB 색상을 갖는 확대된 배열 생성 scaled_rgb_array = np.kron(rgb_colors, np.ones((100, 100, 1))) # 0~255 사이 값으로 변환하고 데이터 타입을 uint8로 변환 scaled_rgb_array = (scaled_rgb_array * 255).astype(np.uint8) height, width, _ = scaled_rgb_array.shape # 한 줄 당 바이트 수는 너비 * 채널 수 bytes_per_line = 3 * width q_image = QImage(scaled_rgb_array.data, width, height, bytes_per_line, QImage.Format_RGB888) pixmap = QPixmap.fromImage(q_image) self.label.setPixmap(pixmap) app = QApplication(sys.argv) dialog = ImageDialog() dialog.show() sys.exit(app.exec_()) |
반응형
'Qt > PyQt5 강좌' 카테고리의 다른 글
PyQt5 QTableWidget 예제 (0) | 2024.05.23 |
---|---|
PyQt5에서 윈도우의 모든 창 버튼(최소화, 최대화, 닫기)을 제거 (0) | 2024.05.21 |
pyQt5 - process에서 메시지 박스를 보여주는 예제 (0) | 2024.04.14 |
PyQt5 예제 - 단축키로 버튼 누르기 (0) | 2024.04.12 |
PyQtGraph 다른 모니터로 윈도우 이동시 그래프가 깨지는 현상 해결 방법 (0) | 2024.02.21 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!