From 7ce3bd534a29bd2b1f20491c09a7ffd125c10e52 Mon Sep 17 00:00:00 2001 From: Emmanouil Papadeas Date: Fri, 16 Jun 2023 17:16:32 +0300 Subject: [PATCH] Auto-enlarge the canvas if the imported image is larger than the canvas size --- src/Autoload/OpenSave.gd | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Autoload/OpenSave.gd b/src/Autoload/OpenSave.gd index 18d2fca24..562dc0d34 100644 --- a/src/Autoload/OpenSave.gd +++ b/src/Autoload/OpenSave.gd @@ -566,12 +566,15 @@ func open_image_as_spritesheet_layer( func open_image_at_cel(image: Image, layer_index := 0, frame_index := 0) -> void: var project: Project = Global.current_project + var project_width: int = max(image.get_width(), project.size.x) + var project_height: int = max(image.get_height(), project.size.y) + if project.size < Vector2(project_width, project_height): + DrawingAlgos.resize_canvas(project_width, project_height, 0, 0) project.undos += 1 project.undo_redo.create_action("Replaced Cel") for i in project.frames.size(): if i == frame_index: - image.crop(project.size.x, project.size.y) image.convert(Image.FORMAT_RGBA8) var cel: PixelCel = project.frames[i].cels[layer_index] project.undo_redo.add_do_property(cel, "image", image) @@ -591,7 +594,10 @@ func open_image_at_cel(image: Image, layer_index := 0, frame_index := 0) -> void func open_image_as_new_frame(image: Image, layer_index := 0) -> void: var project: Project = Global.current_project - image.crop(project.size.x, project.size.y) + var project_width: int = max(image.get_width(), project.size.x) + var project_height: int = max(image.get_height(), project.size.y) + if project.size < Vector2(project_width, project_height): + DrawingAlgos.resize_canvas(project_width, project_height, 0, 0) var frame := Frame.new() for i in project.layers.size(): @@ -617,7 +623,10 @@ func open_image_as_new_frame(image: Image, layer_index := 0) -> void: func open_image_as_new_layer(image: Image, file_name: String, frame_index := 0) -> void: var project: Project = Global.current_project - image.crop(project.size.x, project.size.y) + var project_width: int = max(image.get_width(), project.size.x) + var project_height: int = max(image.get_height(), project.size.y) + if project.size < Vector2(project_width, project_height): + DrawingAlgos.resize_canvas(project_width, project_height, 0, 0) var layer := PixelLayer.new(project, file_name) var cels := []