图片¶
该 Image
类用于创建可以容易地在设备的LED矩阵显示图像。给定一个图像对象,可以通过display
API显示它:
display.show(Image.HAPPY)
有四种方法可以构建图像:
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
和行y
的value
,它具有为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
。