ifullut
@ifullut
Учу программирование понарошку...

Как рисовать пикселями на Python?

Я хочу рисовать по пикселям на питоне, как это можно реализовать? При этом можно указывать цвет пикселя.
Например, нужна картинка 20х20 пикселей, и мне нужно закрасить пиксель по координатам 3;4 где первое это х, а второе у и цвет у этого пикселя красный, как это реализовать? Или похожее на это?
  • Вопрос задан
  • 3102 просмотра
Пригласить эксперта
Ответы на вопрос 2
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
К примеру matplotlib:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

res = np.zeros((20, 20, 3))
res[3, 4] = [254, 0, 0]  # рисуем красный пиксель

plt.imshow(res)

60fd8bf347e84799773733.png
Ответ написан
Комментировать
sanya84
@sanya84
Фанатик Python 3
В примере изображение растягивается вместе с окном, так как оно слишком маленькое.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QSizePolicy, QGridLayout
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import Qt
from PIL import Image
from PIL import ImageQt


class DrawOnPython(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Пример рисования в Python")
        self.setGeometry(300, 300, 400, 300)
        
        self.label_image = QLabel()
        self.label_image.setScaledContents(True)
        self.label_image.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.label_image.setAlignment(Qt.AlignCenter)
        
        self.layout = QGridLayout(self)
        self.layout.addWidget(self.label_image, 0, 0)
        
        self.create_image()
        self.show_image()
    def create_image(self):
        image = Image.new(mode="RGB", size=(20, 20))
        self.image = image.convert("RGBA")
        self.image.putpixel((3, 4), (255, 0, 0))
    def show_image(self):
        image_qt = ImageQt.ImageQt(self.image)
        pixmap = QPixmap.fromImage(image_qt)
        self.label_image.setPixmap(pixmap)
    
def main():
    qapp = QApplication([])
    draw_on_python = DrawOnPython()
    draw_on_python.show()
    sys.exit(qapp.exec())

if __name__ == '__main__':
    main()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы