system
1
|
|
|
 |
Attention |
Topic was automatically imported from the old Question2Answer platform. |
 |
Asked By |
AiTechEye |
i have a viewport node where transparent_bg = true
var img = get_node("viewport").get_viewport().get_texture().get_data()
img.save_png("res://temp_png.png")
the viewport texture background are transparent in the editor, but black when its saved.
any idea?
Have you checked the texture data to see whether it has alpha data?
Ertain | 2020-02-24 00:32
Got it, i had to convert the format
AiTechEye | 2020-02-24 07:34
system
2
|
|
|
 |
Reply From: |
Error7Studios |
VIEWPORT.get_texture().get_data()
returns an Image in the format, FORMAT_RGBAH
.
You can check this by using IMAGE.get_format()
It will return 15
, which is the enum value for IMAGE.FORMAT_RGBAH
When you save it with save_png()
, all the transparent pixels are black.
You can simply convert the image to FORMAT_RGBA8
, and then when you save it, it will preserve its transparency.
var my_img : Image = my_viewport.get_texture().get_data()
print(my_img.get_format())
my_img.convert(Image.FORMAT_RGBA8)
print(my_img.get_format())
my_img.flip_y()
my_img.save_png(my_path)
system
3
|
|
|
 |
Reply From: |
AiTechEye |
img.convert(Image.FORMAT_RGBA8)