The Godot Q&A is currently undergoing maintenance!

Your ability to ask and answer questions is temporarily disabled. You can browse existing threads in read-only mode.

We are working on bringing this community platform back to its full functionality, stay tuned for updates.

godotengine.org | Twitter

0 votes

Hi,

I am taking a screenshot of textureRect which is child of a viewport with the below code. I want to save the screenshot in the file system so that when I play the game next time, it starts from the saved screenshot.

func _on_Kemra_pressed():

    ViewPort.set_clear_mode(Viewport.CLEAR_MODE_ONLY_NEXT_FRAME)

    yield(VisualServer, "frame_post_draw")
    var img = get_viewport().get_texture().get_data()
    img.flip_y()
    var tex = ImageTexture.new()
    tex.create_from_image(img)
    textRect.set_texture(tex)

I want to save the current texture of the node textRect to file so that when I play the game next time the saved screenshot is loaded.

Godot version 3.2.2
in Engine by (101 points)

1 Answer

+1 vote

The Image class has a save_png method that you can use for this:

get_viewport().get_texture().get_data().save_png("user://screenshot.png")
by (736 points)

Thanks a lot. This works.

How do I load a png from file system to the game
Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read Frequently asked questions and How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to [email protected] with your username.