summaryrefslogtreecommitdiff
path: root/ui/bmp_texture.gd
diff options
context:
space:
mode:
Diffstat (limited to 'ui/bmp_texture.gd')
-rw-r--r--ui/bmp_texture.gd19
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