Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

BitMap

继承: Resource < RefCounted < Object

布尔矩阵。

描述

布尔值二维数组,可以用来高效存储二进制矩阵(每个矩阵元素只占一个比特位),并使用自然的笛卡尔坐标查询数值。

方法

Image

convert_to_image ( ) const

void

create ( Vector2i size )

void

create_from_image_alpha ( Image image, float threshold=0.1 )

bool

get_bit ( int x, int y ) const

bool

get_bitv ( Vector2i position ) const

Vector2i

get_size ( ) const

int

get_true_bit_count ( ) const

void

grow_mask ( int pixels, Rect2i rect )

PackedVector2Array[]

opaque_to_polygons ( Rect2i rect, float epsilon=2.0 ) const

void

resize ( Vector2i new_size )

void

set_bit ( int x, int y, bool bit )

void

set_bit_rect ( Rect2i rect, bool bit )

void

set_bitv ( Vector2i position, bool bit )


方法说明

Image convert_to_image ( ) const

返回与该位图大小相同且具有 Image.FORMAT_L8 类型的 Format 的图像。该位图中的 true 位被转换为白色像素,false 位被转换为黑色像素。


void create ( Vector2i size )

创建一个指定尺寸的位图,用 false 填充。


void create_from_image_alpha ( Image image, float threshold=0.1 )

创建一个匹配给定图像大小的位图,如果该位图的 Alpha 值等于或小于 threshold,则位图的每个元素都被设置为 false;否则被设置为 true


bool get_bit ( int x, int y ) const

返回位图在指定位置的值。


bool get_bitv ( Vector2i position ) const

返回位图在指定位置的值。


Vector2i get_size ( ) const

返回位图的尺寸。


int get_true_bit_count ( ) const

返回设置为 true 的位图元素的数量。


void grow_mask ( int pixels, Rect2i rect )

对位图进行形态学膨胀或腐蚀操作。如果 pixels 为正,则对位图执行膨胀。如果 pixels 为负,则对位图执行腐蚀。rect 定义进行形态学操作的区域。位于 rect] 之外的像素不会被 grow_mask 影响。


PackedVector2Array[] opaque_to_polygons ( Rect2i rect, float epsilon=2.0 ) const

创建一个多边形 Array,以覆盖位图的矩形部分。它使用行进方块算法,然后使用 Ramer-Douglas-Peucker(RDP)减少顶点数。每个多边形都被描述为其顶点的 PackedVector2Array

要获取覆盖整个位图的多边形,请传递:

Rect2(Vector2(), get_size())

epsilon 被传递给 RDP,以控制多边形覆盖位图的准确程度:epsilon 越低,对应的多边形中的点越多。


void resize ( Vector2i new_size )

将该图像的大小修改为 new_size


void set_bit ( int x, int y, bool bit )

将位图中指定位置的元素设置为指定值。


void set_bit_rect ( Rect2i rect, bool bit )

将位图的矩形部分设置为指定值。


void set_bitv ( Vector2i position, bool bit )

将位图中指定位置的元素设置为指定值。