该模块提供一个可用于创建位图、可发送到显示器的通用帧缓冲区。
帧缓冲区类提供一个像素缓冲区,此缓冲区可使用像素、线、矩形、文本甚至其他帧缓冲区来绘制。此缓冲区可在生成显示器输出时发挥作用。
import framebuf
# FrameBuffer needs 2 bytes for every RGB565 pixel 对于每个RGB565像素,帧缓冲区都需2字节
fbuf = FrameBuffer(bytearray(100 * 100 * 2), 100, 100, framebuf.RGB565)
fbuf.fill(0)
fbuf.text('Waffle Nano', 0, 0, 0xffff)
fbuf.hline(0, 10, 96, 0xffff)
classframebuf.FrameBuffer(buffer, width, height, format, stride=width)
构建一个帧缓冲区对象。参数为:
必须指定有效缓冲区、宽度、高度和可选跨度。无效帧缓冲区大小或维度可能会导致意外错误。
下面的类函数将图形绘制到帧缓冲区中。
FrameBuffer.fill(c)
使用指定颜色填满整个帧缓冲区。
FrameBuffer.pixel(x, y[, c])
若未给定c,则获取指定像素的色值。若给定c,将指定像素设置到给定颜色。
FrameBuffer.hline(x, y, w, c)
FrameBuffer.vline(x, y, h, c)
FrameBuffer.line(x1, y1, x2, y2, c)
使用给定颜色和1像素的厚度从一组坐标中绘制一条线。line类函数将这条线画到另一组坐标上, 而hline和vline类函数分别将水平和垂直线绘制到给定长度。
FrameBuffer.rect(x, y, w, h, c)
FrameBuffer.fill_rect(x, y, w, h, c)
在给定位置、按照给定大小和颜色绘制一个矩形。 rect 类函数仅绘制1个像素的边框,而 fill_rect 类函数可绘制出边框和矩形内部。
FrameBuffer.text(s, x, y[, c])
使用坐标作为文本的左上角,将文本写入帧缓冲区。文本颜色可由任意参数定义,否则将保持其默认值1。所有字符都有8x8像素的尺寸,目前尚无办法改变字体。
FrameBuffer.scroll(xstep, ystep)
使用给定向量转换帧缓冲区的内容。这可能会在帧缓冲区中留下之前颜色的覆盖区。
FrameBuffer.blit(fbuf, x, y[, key])
在当前帧缓冲区的顶部的给定坐标下绘制另外一个帧缓冲区。若指定key,则其应为一个颜色整数,且相应颜色被认为是透明的:所有具有该色值的像素都不会被绘制。
此类函数在帧缓冲区使用的不同格式间运行,但是由于颜色格式不匹配,最终颜色可能与预想的存在差异。
framebuf.MONO_VLSB
单色(1位)颜色模式
此模式定义了一个映射,其中一个字节的位为垂直映射,而0位位于屏幕的最顶部。因此,每个字节占据8个垂直像素。 后续字节在连续的水平位置出现,直至到达最右侧的边缘。更多字节从最左边开始低8个像素显示。
framebuf.MONO_HLSB
单色(1位)颜色模式
此模式定义了一个映射,其中一个字节的位为水平映射。每个字节占据8个水平像素,0位位于最左边。 后续字节在连续的水平位置出现,直至到达最右侧的边缘。更多字节在下一行低1个像素显示。
framebuf.MONO_HMSB
单色(1位)颜色模式
此模式定义了一个映射,其中一个字节的位为水平映射。每个字节占据8个水平像素,而7位位于屏幕的最左边。 后续字节在连续的水平位置出现,直至到达最右侧的边缘。更多字节在下一行低1个像素显示。
framebuf.RGB565
RGB565彩色(16位,5+6+5)颜色模式
framebuf.GS2_HMSB
灰度(2位)颜色模式
framebuf.GS4_HMSB
灰度(4位)颜色模式
framebuf.GS8
灰度(8位)颜色模式
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )