Texture.get_Image return empty image

Godot Version

4.2.1

Question

I wrote a script to convert a viewport texture to an image but it returned empty I don’t know if it is a bug or if I missed something
Code: ignore comments

	var vt: ViewportTexture = sub_viewport.get_texture()
	#sprite_2d.texture = vt
	var image: Image = vt.get_image()
	image.save_png("res://test.png")
	#var x1: int
	#for h in image.get_height():
		#var y1: int
		#for w in image.get_width():
			#var color: Color = image.get_pixel(w,h)
			#if color == Color(0,0,0,0):
				#image.set_pixel(w,h,Color.RED)
	#var rect: = image.get_used_rect()
	#var new_image: = image.get_region(rect)
	var texture: = ImageTexture.create_from_image(image)
	sprite_2d.texture = texture
	#sprite_2d_2.texture = texture

If you are doing it in _ready() or somewhere where the viewport hasn’t rendered yet then you’ll need to await for RenderingServer.frame_post_draw before accessing its contents.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.