2024-06-04 18:31:04 +02:00
|
|
|
extends Node2D
|
|
|
|
|
|
|
|
@onready var camera = $Camera
|
|
|
|
@onready var image_viewport = $ImageViewport
|
|
|
|
@onready var ui_container = $UI_Layer/UserInterfaceContainer
|
2024-06-08 11:23:21 +02:00
|
|
|
@onready var ui_control_fileopen = $UI_Layer/UserInterfaceContainer/OpenImageDialog
|
|
|
|
@onready var ui_control_filesave = $UI_Layer/UserInterfaceContainer/SaveImageDialog
|
2024-06-09 14:48:27 +02:00
|
|
|
var last_save_filepath = ""
|
2024-06-04 18:31:04 +02:00
|
|
|
|
|
|
|
func _ready():
|
2024-06-04 21:05:46 +02:00
|
|
|
Globals.target_viewport = image_viewport
|
2024-06-04 18:31:04 +02:00
|
|
|
|
|
|
|
func _on_open_image_button_pressed():
|
2024-06-08 11:23:21 +02:00
|
|
|
ui_control_fileopen.show()
|
2024-06-04 18:31:04 +02:00
|
|
|
|
2024-06-08 11:23:21 +02:00
|
|
|
func _on_open_image_dialog_file_selected(path):
|
2024-06-04 18:31:04 +02:00
|
|
|
var img = Image.new()
|
|
|
|
var err = img.load(path)
|
|
|
|
if err == OK:
|
|
|
|
image_viewport.set_original_image(img)
|
2024-06-04 21:05:46 +02:00
|
|
|
image_viewport.update()
|
2024-06-04 18:31:04 +02:00
|
|
|
camera.fit_image()
|
2024-06-09 14:48:27 +02:00
|
|
|
last_save_filepath = ""
|
2024-06-04 18:31:04 +02:00
|
|
|
else:
|
|
|
|
print("An error occured!")
|
|
|
|
|
|
|
|
func _on_save_image_button_pressed():
|
2024-06-08 11:23:21 +02:00
|
|
|
if image_viewport.get_result() != null:
|
2024-06-09 14:48:27 +02:00
|
|
|
if last_save_filepath == "":
|
|
|
|
ui_control_filesave.current_file = "output.png"
|
|
|
|
else:
|
|
|
|
ui_control_filesave.current_path = last_save_filepath
|
2024-06-08 11:23:21 +02:00
|
|
|
ui_control_filesave.show()
|
2024-06-04 18:31:04 +02:00
|
|
|
|
2024-06-08 11:23:21 +02:00
|
|
|
func _on_save_image_dialog_file_selected(path):
|
2024-06-04 21:05:46 +02:00
|
|
|
var err = image_viewport.get_result().save_png(path)
|
2024-06-04 18:31:04 +02:00
|
|
|
if err != OK:
|
|
|
|
print("An error occured!")
|
2024-06-09 14:48:27 +02:00
|
|
|
else:
|
|
|
|
last_save_filepath = path
|