Comments (7)
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.
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.
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.
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.
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.
I just released 0.3.16. Can you test that this fixes the transforms for you?
from node-pureimage.
Happy to confirm that this fixes the issue my test code illustrates.
from node-pureimage.
Related Issues (20)
- support reading large files HOT 3
- drawImage. RangeError: Maximum call stack size exceeded HOT 2
- pngjs outdated causing deprecation warning HOT 1
- [feature] createConicGradient missing
- Path is distorted
- Please support lineCap
- Transparent background HOT 2
- Create a virtual Canvas (without `canvas#data` object)
- Image transparency overwrites existing content
- Error: export 'make' (imported as 'PImage') was not found in 'pureimage' (module has no exports) HOT 7
- [feature request] setting the encode option (e.g. PNG compression level) HOT 4
- Can this run on the browser? HOT 2
- NPM packages are missing TypeScript types HOT 6
- make() is deprecated HOT 2
- Setting background colour on large canvas takes a LONG time HOT 3
- Error [ERR_MODULE_NOT_FOUND]: Cannot find package in version 0.4.11 HOT 4
- NPM version 0.4.11 is missing the dist folder. HOT 2
- fillText problem HOT 3
- strokeRect doesn't respect lineWidth HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-pureimage.