diff options
Diffstat (limited to 'ui/bmp_texture.gd')
-rw-r--r-- | ui/bmp_texture.gd | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/ui/bmp_texture.gd b/ui/bmp_texture.gd new file mode 100644 index 0000000..54bf37b --- /dev/null +++ b/ui/bmp_texture.gd @@ -0,0 +1,19 @@ +class_name BMPTexture +extends ImageTexture + + +static func from_texture(texture: Texture2D, background_colors: Array[Color]) -> ImageTexture: + var image: Image = texture.get_image() + image.convert(Image.FORMAT_RGBA8) + + for x in image.get_width(): + for y in image.get_height(): + for color in background_colors: + if image.get_pixel(x, y).is_equal_approx(color): + image.set_pixel(x, y, Color.TRANSPARENT) + break + + var image_texture := ImageTexture.new() + image_texture.set_image(image) + + return image_texture |