:github_url: hide .. _class_BitMap: BitMap ====== **Eredita:** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` Matrice booleana. .. rst-class:: classref-introduction-group Descrizione ---------------------- Un array bidimensionale di valori booleani, puΓ² essere utilizzato per memorizzare in modo efficiente una matrice binaria (ogni elemento della matrice occupa un solo bit) e interrogare i valori utilizzando le coordinate cartesiane naturali. .. rst-class:: classref-reftable-group Metodi ------------ .. table:: :widths: auto +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Image` | :ref:`convert_to_image`\ (\ ) |const| | +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`create`\ (\ size\: :ref:`Vector2i`\ ) | +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`create_from_image_alpha`\ (\ image\: :ref:`Image`, threshold\: :ref:`float` = 0.1\ ) | +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`get_bit`\ (\ x\: :ref:`int`, y\: :ref:`int`\ ) |const| | +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`get_bitv`\ (\ position\: :ref:`Vector2i`\ ) |const| | +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2i` | :ref:`get_size`\ (\ ) |const| | +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_true_bit_count`\ (\ ) |const| | +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`grow_mask`\ (\ pixels\: :ref:`int`, rect\: :ref:`Rect2i`\ ) | +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array`\[:ref:`PackedVector2Array`\] | :ref:`opaque_to_polygons`\ (\ rect\: :ref:`Rect2i`, epsilon\: :ref:`float` = 2.0\ ) |const| | +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`resize`\ (\ new_size\: :ref:`Vector2i`\ ) | +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_bit`\ (\ x\: :ref:`int`, y\: :ref:`int`, bit\: :ref:`bool`\ ) | +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_bit_rect`\ (\ rect\: :ref:`Rect2i`, bit\: :ref:`bool`\ ) | +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_bitv`\ (\ position\: :ref:`Vector2i`, bit\: :ref:`bool`\ ) | +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Descrizioni dei metodi -------------------------------------------- .. _class_BitMap_method_convert_to_image: .. rst-class:: classref-method :ref:`Image` **convert_to_image**\ (\ ) |const| :ref:`πŸ”—` Restituisce un'immagine delle stesse dimensioni della bitmap e con un :ref:`Format` di tipo :ref:`Image.FORMAT_L8`. I bit ``true`` della bitmap vengono convertiti in pixel bianchi, mentre i bit ``false`` in pixel neri. .. rst-class:: classref-item-separator ---- .. _class_BitMap_method_create: .. rst-class:: classref-method |void| **create**\ (\ size\: :ref:`Vector2i`\ ) :ref:`πŸ”—` Crea una bitmap con la dimensione specificata, riempita con il valore ``false``. .. rst-class:: classref-item-separator ---- .. _class_BitMap_method_create_from_image_alpha: .. rst-class:: classref-method |void| **create_from_image_alpha**\ (\ image\: :ref:`Image`, threshold\: :ref:`float` = 0.1\ ) :ref:`πŸ”—` Crea una bitmap che corrisponde alle dimensioni dell'immagine specificate, ogni elemento della bitmap Γ¨ impostato su ``false`` se il valore alfa dell'immagine in quella posizione Γ¨ inferiore o uguale a ``threshold``, e ``true`` altrimenti. .. rst-class:: classref-item-separator ---- .. _class_BitMap_method_get_bit: .. rst-class:: classref-method :ref:`bool` **get_bit**\ (\ x\: :ref:`int`, y\: :ref:`int`\ ) |const| :ref:`πŸ”—` Restituisce il valore della bitmap alla posizione specificata. .. rst-class:: classref-item-separator ---- .. _class_BitMap_method_get_bitv: .. rst-class:: classref-method :ref:`bool` **get_bitv**\ (\ position\: :ref:`Vector2i`\ ) |const| :ref:`πŸ”—` Restituisce il valore della bitmap alla posizione specificata. .. rst-class:: classref-item-separator ---- .. _class_BitMap_method_get_size: .. rst-class:: classref-method :ref:`Vector2i` **get_size**\ (\ ) |const| :ref:`πŸ”—` Restituisce le dimensioni della bitmap. .. rst-class:: classref-item-separator ---- .. _class_BitMap_method_get_true_bit_count: .. rst-class:: classref-method :ref:`int` **get_true_bit_count**\ (\ ) |const| :ref:`πŸ”—` Restituisce il numero degli elementi di bitmap che sono impostati su ``true``. .. rst-class:: classref-item-separator ---- .. _class_BitMap_method_grow_mask: .. rst-class:: classref-method |void| **grow_mask**\ (\ pixels\: :ref:`int`, rect\: :ref:`Rect2i`\ ) :ref:`πŸ”—` Applica una dilatazione o un'erosione morfologica alla bitmap. Se ``pixels`` Γ¨ positivo, la dilatazione viene applicata alla bitmap. Se ``pixels`` Γ¨ negativo, l'erosione viene applicata alla bitmap. ``rect`` definisce l'area in cui viene applicata l'operazione morfologica. I pixel situati all'esterno di ``rect`` non sono influenzati da :ref:`grow_mask()`. .. rst-class:: classref-item-separator ---- .. _class_BitMap_method_opaque_to_polygons: .. rst-class:: classref-method :ref:`Array`\[:ref:`PackedVector2Array`\] **opaque_to_polygons**\ (\ rect\: :ref:`Rect2i`, epsilon\: :ref:`float` = 2.0\ ) |const| :ref:`πŸ”—` Crea un :ref:`Array` di poligoni che coprono una porzione rettangolare della bitmap. Utilizza un algoritmo "marching squares", seguito dalla riduzione di Ramer-Douglas-Peucker (RDP) del numero di vertici. Ogni poligono Γ¨ descritto come un :ref:`PackedVector2Array` dei suoi vertici. Per ottenere poligoni che coprono l'intera bitmap, passa: :: Rect2(Vector2(), get_size()) \ ``epsilon`` viene passato a RDP per controllare la precisione con cui i poligoni coprono la bitmap: un ``epsilon`` inferiore corrisponde a piΓΉ punti nei poligoni. .. rst-class:: classref-item-separator ---- .. _class_BitMap_method_resize: .. rst-class:: classref-method |void| **resize**\ (\ new_size\: :ref:`Vector2i`\ ) :ref:`πŸ”—` Ridimensiona l'immagine a ``new_size``. .. rst-class:: classref-item-separator ---- .. _class_BitMap_method_set_bit: .. rst-class:: classref-method |void| **set_bit**\ (\ x\: :ref:`int`, y\: :ref:`int`, bit\: :ref:`bool`\ ) :ref:`πŸ”—` Imposta l'elemento della bitmap alla posizione specificata, sul valore specificato. .. rst-class:: classref-item-separator ---- .. _class_BitMap_method_set_bit_rect: .. rst-class:: classref-method |void| **set_bit_rect**\ (\ rect\: :ref:`Rect2i`, bit\: :ref:`bool`\ ) :ref:`πŸ”—` Imposta un valore specificato per una porzione rettangolare della bitmap. .. rst-class:: classref-item-separator ---- .. _class_BitMap_method_set_bitv: .. rst-class:: classref-method |void| **set_bitv**\ (\ position\: :ref:`Vector2i`, bit\: :ref:`bool`\ ) :ref:`πŸ”—` Imposta l'elemento della bitmap alla posizione specificata, sul valore specificato. .. |virtual| replace:: :abbr:`virtual (Questo metodo dovrebbe solitamente essere sovrascritto dall'utente per aver un effetto.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (Questo metodo non ha effetti collaterali. Non modifica alcuna variabile appartenente all'istanza.)` .. |vararg| replace:: :abbr:`vararg (Questo metodo accetta qualsiasi numero di argomenti oltre a quelli descritti qui.)` .. |constructor| replace:: :abbr:`constructor (Questo metodo Γ¨ utilizzato per creare un tipo.)` .. |static| replace:: :abbr:`static (Questo metodo non necessita di alcun'istanza per essere chiamato, quindi puΓ² essere chiamato direttamente usando il nome della classe.)` .. |operator| replace:: :abbr:`operator (Questo metodo descrive un operatore valido da usare con questo tipo come operando di sinistra.)` .. |bitfield| replace:: :abbr:`BitField (Questo valore Γ¨ un intero composto da una maschera di bit dei seguenti flag.)` .. |void| replace:: :abbr:`void (Nessun valore restituito.)`