BitMap
继承: Resource < RefCounted < Object
布尔矩阵。
描述
布尔值二维数组,可以用来高效存储二进制矩阵(每个矩阵元素只占一个比特位),并使用自然的笛卡尔坐标查询数值。
方法
convert_to_image() const | |
void | |
void | create_from_image_alpha(image: Image, threshold: float = 0.1) |
get_size() const | |
get_true_bit_count() const | |
void | |
opaque_to_polygons(rect: Rect2i, epsilon: float = 2.0) const | |
void | |
void | |
void | set_bit_rect(rect: Rect2i, bit: bool) |
void |
方法说明
Image convert_to_image() const 🔗
返回与该位图大小相同且具有 Image.FORMAT_L8 类型的 Format 的图像。该位图中的 true
位被转换为白色像素,false
位被转换为黑色像素。
创建一个指定尺寸的位图,用 false
填充。
void create_from_image_alpha(image: Image, threshold: float = 0.1) 🔗
创建一个匹配给定图像大小的位图,如果该位图的 Alpha 值等于或小于 threshold
,则位图的每个元素都被设置为 false
;否则被设置为 true
。
bool get_bit(x: int, y: int) const 🔗
返回位图在指定位置的值。
bool get_bitv(position: Vector2i) const 🔗
返回位图在指定位置的值。
返回位图的尺寸。
int get_true_bit_count() const 🔗
返回设置为 true
的位图元素的数量。
void grow_mask(pixels: int, rect: Rect2i) 🔗
对位图进行形态学膨胀或腐蚀操作。如果 pixels
为正,则对位图执行膨胀。如果 pixels
为负,则对位图执行腐蚀。rect
定义进行形态学操作的区域。位于 rect
] 之外的像素不会被 grow_mask 影响。
Array[PackedVector2Array] opaque_to_polygons(rect: Rect2i, epsilon: float = 2.0) const 🔗
创建一个多边形 Array,以覆盖位图的矩形部分。它使用行进方块算法,然后使用 Ramer-Douglas-Peucker(RDP)减少顶点数。每个多边形都被描述为其顶点的 PackedVector2Array。
要获取覆盖整个位图的多边形,请传递:
Rect2(Vector2(), get_size())
epsilon
被传递给 RDP,以控制多边形覆盖位图的准确程度:epsilon
越低,对应的多边形中的点越多。
void resize(new_size: Vector2i) 🔗
将该图像的大小修改为 new_size
。
void set_bit(x: int, y: int, bit: bool) 🔗
将位图中指定位置的元素设置为指定值。
void set_bit_rect(rect: Rect2i, bit: bool) 🔗
将位图的矩形部分设置为指定值。
void set_bitv(position: Vector2i, bit: bool) 🔗
将位图中指定位置的元素设置为指定值。