Это действительно возможно с превосходной библиотекой Cairo , специально созданной для высокоточного и высокопроизводительного рендеринга.Просто установите python-привязку с pip install pycairo
.
Попробуйте следующий короткий пример.Обратите внимание, что при субпиксельном рендеринге синий и красный цвета в некоторых местах пикселей смешиваются с фиолетовым.
import cairo
WIDTH, HEIGHT = 32, 32
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, WIDTH, HEIGHT)
ctx = cairo.Context(surface)
# draw blue triangle
ctx.move_to(10, 10)
ctx.line_to(20.5, 10)
ctx.line_to(20.5, 20)
ctx.close_path()
ctx.set_source_rgb(0.5, 0.0, 0.0)
ctx.fill()
# draw blue triangle
ctx.move_to(10, 15)
ctx.line_to(20.5, 15)
ctx.line_to(20.5, 25)
ctx.close_path()
ctx.set_source_rgb(0.0, 0.0, 0.5)
ctx.fill()
surface.write_to_png("example.png")