Прямой ответ:
Это можно сделать только с помощью API-интерфейсов для конкретных ОС.Некоторые операционные системы не позволяют изменять пиксели на экране напрямую.
В Windows вы можете использовать библиотеки pywin32 , чтобы получить контекст экрана устройства с помощью вызова dc = GetDC(0)
, а затем раскрасить пиксели с помощью SetPixel(dc, x, y, color)
.
import win32gui
import win32api
dc = win32gui.GetDC(0)
red = win32api.RGB(255, 0, 0)
win32gui.SetPixel(dc, 0, 0, red) # draw red at 0,0
Конечно, то, что вы рисуете таким образом, может быть стерто в любой момент.
Правильный ответ:
Рисование пиксель за пикселемэто самый медленный способ что-то нарисовать.Например, в Windows создание изображения в памяти и рисование его за одну операцию на порядок быстрее, чем рисование с помощью SetPixel.
Если вам нужна скорость, используйте некоторую библиотеку пользовательского интерфейса для python, например, Tkinterмодуль или PyQt.Создайте окно и изображение в памяти, затем нарисуйте изображение в окне.Если вам нужно манипулировать пикселями, манипулируйте ими на изображении и перекрашивайте каждый раз.