bitmaptools – 位图操作工具的集合

在这些板上可用
  • ARAMCON Badge 2019
  • ARAMCON2 Badge
  • ATMegaZero ESP32-S2
  • Adafruit CLUE nRF52840 Express
  • Adafruit Circuit Playground Bluefruit
  • Adafruit EdgeBadge
  • Adafruit Feather Bluefruit Sense
  • Adafruit Feather M4 CAN
  • Adafruit Feather M4 Express
  • Adafruit Feather MIMXRT1011
  • Adafruit Feather RP2040
  • Adafruit Feather STM32F405 Express
  • Adafruit Feather nRF52840 Express
  • Adafruit FunHouse
  • Adafruit Grand Central M4 Express
  • Adafruit Hallowing M4 Express
  • Adafruit ItsyBitsy M4 Express
  • Adafruit ItsyBitsy RP2040
  • Adafruit ItsyBitsy nRF52840 Express
  • Adafruit LED Glasses Driver nRF52840
  • Adafruit Macropad RP2040
  • Adafruit MagTag
  • Adafruit Matrix Portal M4
  • Adafruit Metro ESP32S2
  • Adafruit Metro M4 Airlift Lite
  • Adafruit Metro M4 Express
  • Adafruit Metro nRF52840 Express
  • Adafruit Monster M4SK
  • Adafruit PyGamer
  • Adafruit PyPortal
  • Adafruit PyPortal Pynt
  • Adafruit PyPortal Titano
  • Adafruit Pybadge
  • Adafruit QT Py RP2040
  • Adafruit QT2040 Trinkey
  • Adafruit Trellis M4 Express
  • AloriumTech Evo M51
  • Arduino Nano 33 BLE
  • Arduino Nano RP2040 Connect
  • Artisense Reference Design RD00
  • AtelierDuMaker nRF52840 Breakout
  • BDMICRO VINA-D51
  • BLE-SS dev board Multi Sensor
  • BastBLE
  • BastWiFi
  • BlueMicro840
  • CP32-M4
  • Capable Robot Programmable USB Hub
  • Challenger RP2040 WiFi
  • CircuitBrains Deluxe
  • CrumpS2
  • Cytron Maker Pi RP2040
  • DynOSSAT-EDU-OBC
  • ESP 12k NodeMCU
  • Electronut Labs Blip
  • Electronut Labs Papyr
  • EncoderPad RP2040
  • Espruino Wifi
  • Feather ESP32S2 without PSRAM
  • Feather MIMXRT1011
  • Feather MIMXRT1062
  • FeatherS2
  • FeatherS2 Neo
  • FeatherS2 PreRelease
  • Franzininho WIFI w/Wroom
  • Franzininho WIFI w/Wrover
  • Gravitech Cucumber M
  • Gravitech Cucumber MS
  • Gravitech Cucumber R
  • Gravitech Cucumber RS
  • HMI-DevKit-1.1
  • HiiBot BlueFi
  • IMXRT1010-EVK
  • IkigaiSense Vita nRF52840
  • Kaluga 1
  • LILYGO TTGO T8 ESP32-S2 w/Display
  • MDBT50Q-DB-40
  • MDBT50Q-RX Dongle
  • MEOWBIT
  • MORPHEANS MorphESP-240
  • MakerDiary nRF52840 MDK
  • MakerDiary nRF52840 MDK USB Dongle
  • Makerdiary M60 Keyboard
  • Makerdiary Pitaya Go
  • Makerdiary nRF52840 M.2 Developer Kit
  • Melopero Shake RP2040
  • Metro MIMXRT1011
  • Mini SAM M4
  • NUCLEO STM32F746
  • NUCLEO STM32F767
  • NUCLEO STM32H743
  • OPENMV-H7 R1
  • Oak Dev Tech BREAD2040
  • Oak Dev Tech PixelWing ESP32S2
  • Open Hardware Summit 2020 Badge
  • PCA10056 nRF52840-DK
  • PCA10059 nRF52840 Dongle
  • Particle Argon
  • Particle Boron
  • Particle Xenon
  • Pimoroni Interstate 75
  • Pimoroni Keybow 2040
  • Pimoroni PGA2040
  • Pimoroni Pico LiPo (16MB)
  • Pimoroni Pico LiPo (4MB)
  • Pimoroni PicoSystem
  • Pimoroni Plasma 2040
  • Pimoroni Tiny 2040
  • PyKey60
  • PyboardV1_1
  • Raspberry Pi Pico
  • S2Mini
  • SAM E54 Xplained Pro
  • SAM32v26
  • ST STM32F746G Discovery
  • STM32F412G_DISCO
  • STM32F4_DISCO
  • Saola 1 w/Wroom
  • Saola 1 w/Wrover
  • Seeeduino Wio Terminal
  • Silicognition LLC M4-Shim
  • SparkFun MicroMod RP2040 Processor
  • SparkFun MicroMod SAMD51 Processor
  • SparkFun MicroMod nRF52840 Processor
  • SparkFun Pro Micro RP2040
  • SparkFun Pro nRF52840 Mini
  • SparkFun STM32 MicroMod Processor
  • SparkFun Thing Plus - RP2040
  • SparkFun Thing Plus - SAMD51
  • TG-Boards' Datalore IP M4
  • TG-Watch
  • THUNDERPACK_v11
  • THUNDERPACK_v12
  • Targett Module Clip w/Wroom
  • Targett Module Clip w/Wrover
  • Teensy 4.0
  • Teensy 4.1
  • Teknikio Bluebird
  • The Open Book Feather
  • TinkeringTech ScoutMakes Azul
  • TinyS2
  • UARTLogger II
  • WarmBit BluePixel nRF52840
  • iMX RT 1020 EVK
  • iMX RT 1060 EVK
  • microS2
  • nanoESP32-S2 w/Wrover
  • nanoESP32-S2 w/Wroom
  • nice!nano
  • stm32f411ce-blackpill
  • stm32f411ce-blackpill-with-flash

bitmaptools.rotozoom(dest_bitmap: displayio.Bitmap, source_bitmap: displayio.Bitmap, *, ox: int, oy: int, dest_clip0: Tuple[int, int], dest_clip1: Tuple[int, int], px: int, py: int, source_clip0: Tuple[int, int], source_clip1: Tuple[int, int], angle: float, scale: float, skip_index: int)None

将源位图区域插入到具有旋转(角度)、缩放和剪裁(在源位图和目标位图上)的目标位图中。

参数
  • dest_bitmap (bitmap) – 将被复制到的目标位图

  • source_bitmap (bitmap) – 包含要复制的图形区域的源位图

  • ox (int) – 目标位图中放置源位图点 (px,py) 的水平像素位置

  • oy (int) – 目标位图中放置源位图点 (px,py) 的垂直像素位置

  • dest_clip0 (Tuple[int,int]) –限制写入目标位图的矩形目标剪切区域的第一个角

  • dest_clip1 (Tuple[int,int]) – 矩形目标剪切区域的第二个角,限制写入目标位图的区域

  • px (int) – 源位图中的水平像素位置,放置在 (ox,oy) 处的目标位图中

  • py (int) – 源位图中的垂直像素位置,放置在 (ox,oy) 处的目标位图中

  • source_clip0 (Tuple[int,int]) – 限制从源位图读取的矩形源剪辑区域的第一个角

  • source_clip1 (Tuple[int,int]) – 限制从源位图读取的矩形源剪辑区域的第二个角

  • angle (float) –旋转角度,以弧度为单位(正为顺时针方向)

  • scale (float) – 缩放因子

  • skip_index (int) – 源中不会被复制的位图调色板索引,设置为 None 以复制所有像素

bitmaptools.fill_region(dest_bitmap: displayio.Bitmap, x1: int, y1: int, x2: int, y2: int, value: int)None

将颜色值绘制到由 (x1,y1) 和 (x2,y2) 限定的矩形区域内的目标位图中,不包括在内。

参数
  • dest_bitmap (bitmap) – 将被写入的目标位图

  • x1 (int) – 矩形填充区域第一个角的 x 像素位置

  • y1 (int) – 矩形填充区域第一个角的 y 像素位置

  • x2 (int) –矩形填充区域第二个角的 x 像素位置(不包括)

  • y2 (int) – 矩形填充区域第二个角的 y 像素位置(不包括)

  • value (int) – 位图调色板索引,将写入目标位图中的矩形填充区域

bitmaptools.boundary_fill(dest_bitmap: displayio.Bitmap, x: int, y: int, fill_color_value: int, replaced_color_value: int)None

将颜色值绘制到 background_value 颜色的像素的目标位图封闭区域中。像“油漆桶”填充工具。

参数
  • dest_bitmap (bitmap) – 将被写入的目标位图

  • x (int) – 如果需要,要检查和填充的第一个像素的 x 像素位置

  • y (int) – 如果需要,要检查和填充的第一个像素的 y 像素位置

  • fill_color_value (int) – 将写入目标位图中封闭区域的位图调色板索引

  • replaced_color_value (int) – 位图调色板索引,将填充目标位图中封闭区域中的值颜色

bitmaptools.draw_line(dest_bitmap: displayio.Bitmap, x1: int, y1: int, x2: int, y2: int, value: int)None

在位图中绘制一条线,指定两个端点 (x1,y1) 和 (x2,y2)。

参数
  • dest_bitmap (bitmap) – 将被写入的目标位图

  • x1 (int) – 线的第一个端点的 x 像素位置

  • y1 (int) – 线的第一个端点的 y 像素位置

  • x2 (int) – 线的第二个端点的 x 像素位置

  • y2 (int) – 线的第二个端点的 y 像素位置

  • value (int) –位图调色板索引,将写入目标位图中的行

bitmaptools.arrayblit(bitmap: displayio.Bitmap, data: _typing.ReadableBuffer, x1: int = 0, y1: int = 0, x2: Optional[int] = None, y2: Optional[int] = None, skip_index: Optional[int] = None)None

将像素从 插入 data 到宽度×高度像素的矩形中,左上角为(x,y)

从这些值中 data 被取模颜色值的数量avalable在目标位图。

如果未指定 x1 或 y1,则取为 0。如果未指定 x2 或 y2,或指定为 -1,则取为图像的宽度和高度。

受 blit 影响的坐标是和。 x1 <= x < x2 and y1 <= y < y2.

data必须至少包含所需的元素。如果它包含多余的元素,它们将被忽略。

blit 按行进行,因此第一个元素 data 转到第一行,下一个元素转到下一行,依此类推。

参数
  • bitmap (displayio.Bitmap) – 可写位图

  • data (ReadableBuffer) – 包含源像素值的缓冲区

  • x1 (int) – 要 blit 进入的区域的左角(包括)

  • y1 (int) – 要 blit 进入的区域的顶角(包括))

  • x2 (int) – blit 进入的区域的权利(独占)

  • y2 (int) – 要 blit 进入的区域的底角(不包括)

  • skip_index (int) – 源中不会被复制的位图调色板索引,设置为 None 以复制所有像素

bitmaptools.readinto(bitmap: displayio.Bitmap, file: BinaryIO, bits_per_pixel: int, element_size: int = 1, reverse_pixels_in_element: bool = False, swap_bytes_in_element: bool = False, reverse_rows: bool = False)None

从二进制文件读取到位图。

文件的位置必须使其由 bitmap.height像素数据行组成,其中每一行是element_size 可以容纳 bitmap.width像素的最小字节倍数。

元素中的字节可以随意交换,元素中的像素可以颠倒。此外,行加载方向可以颠倒,这可能需要加载某些位图文件。

此函数不解析图像标头,但可用于加速未压缩图像格式(如 PCF 字形数据)的加载。

参数
  • bitmap (displayio.Bitmap) – 可写位图

  • file (typing.BinaryIO) – 以二进制模式打开的文件

  • bits_per_pixel (int) – 每个像素的位数。支持值 1、2、4、8、16、24 和 32;

  • element_size (int) – 每个元素的字节数。支持 1、2 和 4 的值,但 24bits_per_pixel需要每个元素 1 个字节。

  • reverse_pixels_in_element (bool) – 如果设置,则字中的第一个像素取自最重要的位;否则,它取自最低有效位。

  • swap_bytes_in_element (bool) – 如果element_size不是 1,则反转每个元素读取的字节顺序。

  • reverse_rows (bool) – 反转行加载的方向(某些位图图像需要)。