main
This commit is contained in:
24
framebuffer.py
Normal file
24
framebuffer.py
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
class Framebuffer(object):
|
||||||
|
def __init__(self, device_no: int):
|
||||||
|
self.path = "/dev/fb%d" % device_no
|
||||||
|
config_dir = "/sys/class/graphics/fb%d/" % device_no
|
||||||
|
self.size = tuple(_read_and_convert_to_ints(
|
||||||
|
config_dir + "/virtual_size"))
|
||||||
|
self.stride = _read_and_convert_to_ints(config_dir + "/stride")[0]
|
||||||
|
self.bits_per_pixel = _read_and_convert_to_ints(
|
||||||
|
config_dir + "/bits_per_pixel")[0]
|
||||||
|
assert self.stride == self.bits_per_pixel // 8 * self.size[0]
|
||||||
|
def __str__(self):
|
||||||
|
args = (self.path, self.size, self.stride, self.bits_per_pixel)
|
||||||
|
return "%s size:%s stride:%s bits_per_pixel:%s" % args
|
||||||
|
# Note: performance is terrible even for medium resolutions
|
||||||
|
def show(self, image: Image):
|
||||||
|
converter = _CONVERTER[(image.mode, self.bits_per_pixel)]
|
||||||
|
assert image.size == self.size
|
||||||
|
out = converter(image)
|
||||||
|
with open(self.path, "wb") as fp:
|
||||||
|
fp.write(out)
|
||||||
|
def on(self):
|
||||||
|
pass
|
||||||
|
def off(self):
|
||||||
|
pass
|
Reference in New Issue
Block a user