mirror of
https://github.com/lovell/sharp.git
synced 2026-02-10 00:26:15 +01:00
Allow for negative top/left offsets in composite overlays
A top or left offset value of -1 will no longer mean that the value is not set, but will now be an actual offset of -1. INT_MIN for left & top will mean that the values are not set. Co-authored-by: Christian Flintrup <chr@gigahost.dk>
This commit is contained in:
committed by
Lovell Fuller
parent
182beaa4a1
commit
02676140e8
@@ -570,7 +570,7 @@ class PipelineWorker : public Napi::AsyncWorker {
|
||||
int left;
|
||||
int top;
|
||||
compositeImage = compositeImage.replicate(across, down);
|
||||
if (composite->left >= 0 && composite->top >= 0) {
|
||||
if (composite->hasOffset) {
|
||||
std::tie(left, top) = sharp::CalculateCrop(
|
||||
compositeImage.width(), compositeImage.height(), image.width(), image.height(),
|
||||
composite->left, composite->top);
|
||||
@@ -592,7 +592,7 @@ class PipelineWorker : public Napi::AsyncWorker {
|
||||
// Calculate position
|
||||
int left;
|
||||
int top;
|
||||
if (composite->left >= 0 && composite->top >= 0) {
|
||||
if (composite->hasOffset) {
|
||||
// Composite image at given offsets
|
||||
std::tie(left, top) = sharp::CalculateCrop(image.width(), image.height(),
|
||||
compositeImage.width(), compositeImage.height(), composite->left, composite->top);
|
||||
@@ -1253,6 +1253,7 @@ Napi::Value pipeline(const Napi::CallbackInfo& info) {
|
||||
composite->gravity = sharp::AttrAsUint32(compositeObject, "gravity");
|
||||
composite->left = sharp::AttrAsInt32(compositeObject, "left");
|
||||
composite->top = sharp::AttrAsInt32(compositeObject, "top");
|
||||
composite->hasOffset = sharp::AttrAsBool(compositeObject, "hasOffset");
|
||||
composite->tile = sharp::AttrAsBool(compositeObject, "tile");
|
||||
composite->premultiplied = sharp::AttrAsBool(compositeObject, "premultiplied");
|
||||
baton->composite.push_back(composite);
|
||||
|
||||
Reference in New Issue
Block a user