Adds basic drawing functionnalities to pngjs.
npm install @crazytoucan/pngjs-drawAdds basic drawing functionnalities to pngjs node module.
``sh`
$ npm install --save pngjs-draw
`js
var fs = require('fs');
var drawing = require('pngjs-draw');
var png = drawing(require('pngjs').PNG);
fs.createReadStream("blue.png")
.pipe(new png({ filterType: 4 }))
.on('parsed', function() {
// Draws a pixel with transparent green
this.drawPixel(150,200, this.colors.black())
// Draws a line with transparent red
this.drawLine(0,0,200,200, this.colors.red(50))
// Draws a rectangle with transparent black
this.fillRect(150,150,75,20, this.colors.black(100))
// Draws a filled rectangle with transparent white
this.fillRect(50,50,100,100, this.colors.white(100))
// Draws a text with custom color
this.drawText(20,20, "Hello world !", this.colors.new(255,100,10))
// Writes file
this.pack().pipe(fs.createWriteStream('blue.out.png'));
});
`
Draws the pixel at the given coordinates with the given color.
* {int} x The x coordinate of the pixelint
* {} y The y coordinate of the pixelArray(byte)
* {} color The color used to paint the pixel
Draws a line beetween two points with the given color.
* {int} x0 The x coordinate of the startint
* {} y0 The y coordinate of the startint
* {} x1 The x coordinate of the endint
* {} y1 The y coordinate of the endArray(byte)
* {} color The color used to paint the line
Draws a stroked rectangle with the given color.
* {int} x The top left x coordinate of the rectangleint
* {} y The top left y coordinate of the rectangleint
* {} width The width of the rectangleint
* {} height The height of the rectangleArray(byte)
* {} color The color used to paint strokes of the rectangle
Draws a filled rectangle with the given color.
* {int} x The top left x coordinate of the rectangleint
* {} y The top left y coordinate of the rectangleint
* {} width The width of the rectangleint
* {} height The height of the rectangleArray(byte)
* {} color The color used to fill the rectangle
Draw a text to the image.
* {int} x The top left x coordinate of the stringint
* {} y The top left y coordinate of the stringstring
* {} text The string valueArray(byte)
* {} color The color used used as foregroundObject
* {} font The font used to render the string (optional)Object
* {} text The string value
return {int} The length in pixel of the rendered string
Measure the rendered text length with the given font.
* {string} text The string valueArray(byte)
* {} color The color used used as foregroundObject
* {} font The font used to render the string (optional)
return {int} The length in pixel of the rendered string
[
A color is a javascript array containing Red/Green/Blue/Alpha byte components.
PNG.prototype.colors.new = function(r,g,b,a)
The new method generates an array with the provided components.
Default values :
* r: 00
* g: 0
* b: 255
* a:
``
PNG.prototype.colors.red = function(a)
PNG.prototype.colors.greed = function(a)
PNG.prototype.colors.blue = function(a)
PNG.prototype.colors.black = function(a)
PNG.prototype.colors.white = function(a)
Helper methods for creating base colors are also available.
In order to use a custom font, you must first generate a font module from an image presenting all the supported characters.
For more details, take a look at these files :
* build-font.jsfonts/
custom-font/`
* More shapes (circles, polygons)
* Rotations
* Multi-lines texts
MIT © Aloïs Deniel