SixLabors / ImageSharp

:camera: A modern, cross-platform, 2D Graphics library for .NET
https://sixlabors.com/products/imagesharp/
Other
7.34k stars 847 forks source link

Correctly calculate foreground Rectangle when negative background location is set (3.1 fix) #2609

Closed tocsoft closed 9 months ago

tocsoft commented 9 months ago

Prerequisites

Description

This fixes #2608 which incorrectly handles the a negative drawing target/background location when drawing an image, ensuing the correct portion of the foreground image is retained and never cropped incorrectly.

The foreground rectangle is supposed to be in the foreground images coordinate space where are the background location is in the background images coordinate space, so we need to offset the x, y by the amount we shrink it by when unifying them to determine the portion of the foreground we are interested in.

This still does not change the rules for the foregrounds rectangle as that should not support a negative x,y but only effects the background/target location we will draw the final cropped foreground image to.