mirror of
https://github.com/aseprite/aseprite.git
synced 2025-04-16 05:42:32 +00:00
[lua] New Image(Image, Rectangle) ctor
This commit is contained in:
parent
82cd244a6e
commit
30b61e501e
@ -1,5 +1,5 @@
|
|||||||
// Aseprite
|
// Aseprite
|
||||||
// Copyright (C) 2018-2021 Igara Studio S.A.
|
// Copyright (C) 2018-2022 Igara Studio S.A.
|
||||||
// Copyright (C) 2015-2018 David Capello
|
// Copyright (C) 2015-2018 David Capello
|
||||||
//
|
//
|
||||||
// This program is distributed under the terms of
|
// This program is distributed under the terms of
|
||||||
@ -100,8 +100,29 @@ int Image_new(lua_State* L)
|
|||||||
if (auto spec2 = may_get_obj<doc::ImageSpec>(L, 1)) {
|
if (auto spec2 = may_get_obj<doc::ImageSpec>(L, 1)) {
|
||||||
spec = *spec2;
|
spec = *spec2;
|
||||||
}
|
}
|
||||||
else if (may_get_obj<ImageObj>(L, 1)) {
|
else if (auto imgObj = may_get_obj<ImageObj>(L, 1)) {
|
||||||
return Image_clone(L);
|
// Copy a region of the image
|
||||||
|
if (auto rc = may_get_obj<gfx::Rect>(L, 2)) {
|
||||||
|
doc::Image* crop = nullptr;
|
||||||
|
try {
|
||||||
|
auto docImg = imgObj->image(L);
|
||||||
|
crop = doc::crop_image(docImg, *rc, docImg->maskColor());
|
||||||
|
}
|
||||||
|
catch (const std::invalid_argument&) {
|
||||||
|
// Do nothing (will return nil)
|
||||||
|
}
|
||||||
|
if (crop) {
|
||||||
|
push_new<ImageObj>(L, crop);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Copy the whole image
|
||||||
|
else {
|
||||||
|
return Image_clone(L);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (auto spr = may_get_docobj<doc::Sprite>(L, 1)) {
|
else if (auto spr = may_get_docobj<doc::Sprite>(L, 1)) {
|
||||||
image = doc::Image::create(spr->spec());
|
image = doc::Image::create(spr->spec());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user