图片

Image 类用于创建可以容易地在设备的LED矩阵显示图像。给定一个图像对象,可以通过display API显示它:

display.show(Image.HAPPY)
_images/image-smile.png

有四种方法可以构建图像:

  • Image() - 创建一个空白的 5x5 图像
  • Image(string) - 通过解析字符串创建图像,单个字符返回该字形
  • Image(width, height) - 创建给定大小的空白图像
  • Image(width, height, buffer) - 从给定的缓冲区创建一个图像

班级

class microbit.Image(string)
class microbit.Image(width=None, height=None, buffer=None)

如果string使用,它必须由排列成行的数字 0-9 组成,描述图像,例如:

image = Image("90009:"
              "09090:"
              "00900:"
              "09090:"
              "90009")

将创建一个 X 的 5×5 图像。行的末尾用冒号表示。也可以使用换行符 (n) 来表示一行的结尾,如下所示:

image = Image("90009\n"
              "09090\n"
              "00900\n"
              "09090\n"
              "90009")

另一种形式创建一个带有width 列和 height 行的空图像。任选地 buffer可以是阵列 width``×``height的整数范围中的0-9初始化图像:

Image(2, 2, b'\x08\x08\x08\x08')

或者:

Image(2, 2, bytearray([9,9,9,9]))

将创建一个 2 x 2 像素的全亮度图像。

笔记

关键字参数不能传递给buffer.

width()

返回图像中的列数。

height()

返回图像中的行数。

set_pixel(x, y, value)

设置像素的栏的亮度x 和行yvalue,它具有为0(暗)和图9(亮)之间。

当调用任何内置只读图像时,此方法将引发异常,例如Image.HEART.

get_pixel(x, y)

以0 到 9 之间的整数形式返回列x 和行像素的亮度y

shift_left(n)

返回通过将图片向左移动 n 列创建的新图像。

shift_right(n)

一样 image.shift_left(-n).

shift_up(n)

返回通过按n 行向上移动图片创建的新图像。

shift_down(n)

一样 image.shift_up(-n).

crop(x, y, w, h)

通过将图片裁剪为宽度 w和高度h,从列 x和行的像素开始返回一个新图像 y

copy()

返回图像的精确副本。

invert()

通过反转源图像中像素的亮度来返回新图像。

fill(value)

将图像中所有像素的亮度设置为 value,其必须介于 0(暗)和 9(亮)之间。

当调用任何内置只读图像时,此方法将引发异常,例如 Image.HEART.

blit(src, x, y, w, h, xdest=0, ydest=0)

所限定的矩形复制 x, y, w, h从图像 src 到在这个图像xdest, ydest。源矩形中但源图像之外的区域被视为值为 0。

shift_left(), shift_right(), shift_up(), shift_down()crop() 都是通过使用实现的 blit()。例如, img.crop(x, y, w, h) 可以实现为:

def crop(self, x, y, w, h):
    res = Image(w, h)
    res.blit(self, x, y, w, h)
    return res

属性

Image类也有内置的自己的实例包括作为其属性如下(属性名表示图像代表什么):

  • Image.HEART
  • Image.HEART_SMALL
  • Image.HAPPY
  • Image.SMILE
  • Image.SAD
  • Image.CONFUSED
  • Image.ANGRY
  • Image.ASLEEP
  • Image.SURPRISED
  • Image.SILLY
  • Image.FABULOUS
  • Image.MEH
  • Image.YES
  • Image.NO
  • Image.CLOCK12, Image.CLOCK11, Image.CLOCK10, Image.CLOCK9, Image.CLOCK8, Image.CLOCK7, Image.CLOCK6, Image.CLOCK5, Image.CLOCK4, Image.CLOCK3, Image.CLOCK2, Image.CLOCK1
  • Image.ARROW_N, Image.ARROW_NE, Image.ARROW_E, Image.ARROW_SE, Image.ARROW_S, Image.ARROW_SW, Image.ARROW_W, Image.ARROW_NW
  • Image.TRIANGLE
  • Image.TRIANGLE_LEFT
  • Image.CHESSBOARD
  • Image.DIAMOND
  • Image.DIAMOND_SMALL
  • Image.SQUARE
  • Image.SQUARE_SMALL
  • Image.RABBIT
  • Image.COW
  • Image.MUSIC_CROTCHET
  • Image.MUSIC_QUAVER
  • Image.MUSIC_QUAVERS
  • Image.PITCHFORK
  • Image.XMAS
  • Image.PACMAN
  • Image.TARGET
  • Image.TSHIRT
  • Image.ROLLERSKATE
  • Image.DUCK
  • Image.HOUSE
  • Image.TORTOISE
  • Image.BUTTERFLY
  • Image.STICKFIGURE
  • Image.GHOST
  • Image.SWORD
  • Image.GIRAFFE
  • Image.SKULL
  • Image.UMBRELLA
  • Image.SNAKE
  • Image.SCISSORS

最后,相关的图像集合已组合在一起:

* ``Image.ALL_CLOCKS``
* ``Image.ALL_ARROWS``

操作

repr(image)

获取图像的紧凑字符串表示。

str(image)

获取图像的可读字符串表示形式。

image1 + image2

通过将两个图像中每个像素的亮度值相加来创建一个新图像。

image * n

通过将每个像素的亮度乘以 来创建一个新图像n