图像

Image 类用于创建可在设备的LED矩阵上轻松显示的图像。给定一个图像对象,便可以通过 display API将它显示出来:

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

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

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

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

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

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

另一种形式创建了一个带有 width 列和 height 行的空白图像。可选的缓冲区可以是范围为0-9的 width × height 整数数组,以初始化图像。

width()

返回图像中的列数

height()

返回图像中的行数

set_pixel(x, y, value)

设置像素在 x 列和 y 行处的亮度为 value ,该值必须在0(暗)和9(亮)之间。

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

get_pixel(x, y)

返回 x 列和 y 行中的像素亮度,该亮度取0到9之间的整数。

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)

从图像 src 中复制由 x, y, w, h 定义的矩形到 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.ALL_CLOCKS``
* ``Image.ALL_ARROWS``

操作

repr(image)

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

str(image)

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

通过增加两张图片每个像素的亮度值来创建一个新的图像。

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