1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-01-31 07:29:49 +00:00

Fix out-of-bounds error when color picking outside the image (#291)

This commit is contained in:
Michael Alexsander 2020-08-06 06:13:45 -03:00 committed by GitHub
parent 65828b328a
commit f715b566b1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 1 deletions

View file

@ -229,7 +229,7 @@ func scale_image(width : int, height : int, interpolation : int) -> void:
# Different method for scale3x # Different method for scale3x
if interpolation == 5: if interpolation == 5:
var times : Vector2 = Vector2(ceil(width/(3.0*sprite.get_width())),ceil(height/(3.0*sprite.get_height()))) var times : Vector2 = Vector2(ceil(width/(3.0*sprite.get_width())),ceil(height/(3.0*sprite.get_height())))
for j in range(max(times.x,times.y)): for _j in range(max(times.x,times.y)):
sprite.copy_from(scale3X(sprite)) sprite.copy_from(scale3X(sprite))
sprite.resize(width, height, 0) sprite.resize(width, height, 0)
else: else:

View file

@ -37,8 +37,14 @@ func draw_end(_position : Vector2) -> void:
func _pick_color(position : Vector2) -> void: func _pick_color(position : Vector2) -> void:
if position.x < 0 or position.y < 0:
return
var image := Image.new() var image := Image.new()
image.copy_from(_get_draw_image()) image.copy_from(_get_draw_image())
if position.x > image.get_width() - 1 or position.y > image.get_height() - 1:
return
image.lock() image.lock()
var color := image.get_pixelv(position) var color := image.get_pixelv(position)
var button := BUTTON_LEFT if _color_slot == 0 else BUTTON_RIGHT var button := BUTTON_LEFT if _color_slot == 0 else BUTTON_RIGHT