BitMap

Наследует: Resource < RefCounted < Object

Логическая матрица.

Описание

Двумерный массив логических значений можно использовать для эффективного хранения двоичной матрицы (каждый элемент матрицы занимает только один бит) и запроса значений с использованием естественных декартовых координат.

Методы

Image

convert_to_image() const

void

create(size: Vector2i)

void

create_from_image_alpha(image: Image, threshold: float = 0.1)

bool

get_bit(x: int, y: int) const

bool

get_bitv(position: Vector2i) const

Vector2i

get_size() const

int

get_true_bit_count() const

void

grow_mask(pixels: int, rect: Rect2i)

Array[PackedVector2Array]

opaque_to_polygons(rect: Rect2i, epsilon: float = 2.0) const

void

resize(new_size: Vector2i)

void

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

void

set_bit_rect(rect: Rect2i, bit: bool)

void

set_bitv(position: Vector2i, bit: bool)


Описания метода

Image convert_to_image() const 🔗

Возвращает изображение того же размера, что и растровое изображение, и с Format типа Image.FORMAT_L8. true битов растрового изображения преобразуются в белые пиксели, а false битов — в черные.


void create(size: Vector2i) 🔗

Создает растровое изображение указанного размера, заполненное false.


void create_from_image_alpha(image: Image, threshold: float = 0.1) 🔗

Создает растровое изображение, которое соответствует заданным размерам изображения. Каждому элементу растрового изображения присваивается значение false, если альфа-значение изображения в этой позиции равно threshold или меньше, и true в противном случае.


bool get_bit(x: int, y: int) const 🔗

Возвращает значение растрового изображения в указанной позиции.


bool get_bitv(position: Vector2i) const 🔗

Возвращает значение растрового изображения в указанной позиции.


Vector2i get_size() 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 полигонов, покрывающих прямоугольную часть битовой карты. Он использует алгоритм марширующих квадратов, за которым следует сокращение числа вершин по Рамеру-Дугласу-Пейкеру (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) 🔗

Устанавливает элемент растрового изображения в указанной позиции в указанное значение.