Code Monkey home page Code Monkey logo

Comments (7)

joshmarinacci avatar joshmarinacci commented on June 2, 2024

Can you confirm this is happening with the current version from master? I just created a test from your code and was able to see the rectangle be resized. Note that the background is transparent, so a 50x50 red rect will look similar to a 100x100 red rect.

from node-pureimage.

jkozak avatar jkozak commented on June 2, 2024

Still happening using commit 355ea2b.

The files produced on the two runs are identical:

[nix-shell:/tmp/flatland]$ sha1sum out*
e97ee940bf787779a67b0734ebc43a840fc3c842  out0.png
e97ee940bf787779a67b0734ebc43a840fc3c842  out.png

from node-pureimage.

jkozak avatar jkozak commented on June 2, 2024

Worried that I was doing something stupid, I rewrote the test code to write out both cases:

"use strict";

const PImage = require("pureimage");
const fs = require('fs');

function drawRect(doScale,fn) {
    const img1 = PImage.make(100, 100)
    const ctx = img1.getContext('2d');

    if (doScale)
        ctx.scale(0.5,1.0);

    ctx.fillStyle = 'red';
    ctx.fillRect(0,0,50,50);

    PImage.encodePNGToStream(img1, fs.createWriteStream(fn)).then(() => {
        console.log(`wrote out the png file to ${fn}`);
    }).catch(e=>{
        console.log(`there was an error writing: ${e}`);
    });
}

drawRect(false,"out-f.png");
drawRect(true, "out-t.png");

same results.

from node-pureimage.

joshmarinacci avatar joshmarinacci commented on June 2, 2024

Okay. I see now. The fillRect method directly sets pixels. It doesn't use the transforms. Really it should just create a rect path and fill it, but that breaks other things. Researching.

from node-pureimage.

joshmarinacci avatar joshmarinacci commented on June 2, 2024

doing fillRect() as a path isn't filling the exact same pixels as the plain for loop. I've made a few tweaks to improve it but it still isn't perfect. For now I'm using to use the forLoop path if the current transform is the identity transform. If it's not then it takes the path root. This should fix the bug.

from node-pureimage.

joshmarinacci avatar joshmarinacci commented on June 2, 2024

I just released 0.3.16. Can you test that this fixes the transforms for you?

from node-pureimage.

jkozak avatar jkozak commented on June 2, 2024

Happy to confirm that this fixes the issue my test code illustrates.

from node-pureimage.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.