Système d'exploitation ou appareil - Version de Godot : Linux, Godot 3.0 (master)
Description du problème:
L'obtention d'une capture d'écran à partir de n'importe quelle fenêtre entraîne des données vides.
Étapes à reproduire :
get_viewport().queue_screen_capture()
yield(get_tree(),"idle_frame")
yield(get_tree(),"idle_frame")
var i = get_viewport().get_screen_capture()
i.save_png("user://cap.png")
Maintenant, queue_screen_capture() et get_screen_capture() n'existent même plus.
Je n'ai pas essayé à partir de gdscript, mais vous devriez pouvoir appeler 'viewport.get_texture().get_data()' pour obtenir une référence à l'image que vous pouvez enregistrer. L'appel de 'image.lock()' et image.unlock()' devrait également vous permettre d'obtenir (et peut-être de définir ?) des pixels.
Voici comment cela fonctionne pour le sélecteur de couleurs lors de la sélection d'une couleur à l'écran :
https://github.com/godotengine/godot/blob/master/scene/gui/color_picker.cpp#L428
@MarianoGnu vous avez raison, le problème est seulement que ViewportTexture::get_data() n'est pas lié à GDScript, mais cela devrait être facile à résoudre.
Commentaire le plus utile
@MarianoGnu vous avez raison, le problème est seulement que ViewportTexture::get_data() n'est pas lié à GDScript, mais cela devrait être facile à résoudre.