Expected Behaviour
- After drawing image from source it should look the same as the source.

Actual Behaviour
- Certain vertical and horizontal lines are messed up (either swapped with or replaced by a neighboring line).
- The example image is 200x200 and the wrong lines at x/y coords 31, 59, 60, 113, 114, 115, 116 are visible.

Steps To Reproduce
- Decode image from a file (image with something like a black&white checkerboard pattern allows to see the issue better);
- Create a canvas with the same dimensions;
- Draw the image calling drawImage method (2 arguments form is enough, but reproduceable even with 4 and 8 form) with zero coords;
- Encode image to another file, compare them.
Any Relevant Code Snippets
const img = await PImage.decodePNGFromStream(fs.createReadStream('./test_in.png'));
const canvas = PImage.make(img.width, img.height);
const ctx = canvas.getContext('2d');
ctx.clearRect(0, 0, img.width, img.height);
ctx.drawImage(img, 0, 0, img.width, img.height);
await PImage.encodePNGToStream(canvas, fs.createWriteStream('./test_out.png'));
// the output is scuffed
When I replace the drawImage line with this one, the scuffing suddenly disappears (used as a temporary hack in my project):
ctx.drawImage(img, -1, -1, src.width + 1, src.height + 1);
Platform
OS: Windows 11
Node Version: 20.12.2
NPM Version: 10.5.0
PureImage Version: 0.4.13
Any Additional Info
I think the problem may rise from incorrect bounding points calculation (left/top one), some indexing mistake inside loops, or from scaling matrices.
Expected Behaviour
Actual Behaviour
Steps To Reproduce
Any Relevant Code Snippets
When I replace the drawImage line with this one, the scuffing suddenly disappears (used as a temporary hack in my project):
Platform
OS: Windows 11
Node Version: 20.12.2
NPM Version: 10.5.0
PureImage Version: 0.4.13
Any Additional Info
I think the problem may rise from incorrect bounding points calculation (left/top one), some indexing mistake inside loops, or from scaling matrices.