npe_gerber/README.md
2021-02-06 21:19:30 +00:00

1.9 KiB

npe_gerber

npm (scoped)

This is still being developed and isn't ready for production! Only tested with gerbers generated by EAGLE.

Requires node version 10 or higher.

Usage

Save a PNG file

const { ImageGenerator } = require('@nplayfair/npe_gerber');

const folderConfig = {
    tmpDir: path.join(__dirname, 'tmp'),
    imgDir: path.join(__dirname, 'img')
}

const imageConfig = {
    resizeWidth: 600,
    density: 1000,
    compLevel: 1
}

const gerberArchive = '/path/to/gerber.zip';

const fileProc = new ImageGenerator(folderConfig, imageConfig);

fileProc.gerberToImage(gerberArchive)
      .then(filename => {
        console.log(`Generated image ${filename}`);
      })

Return a PNG stream

const { ImageGenerator } = require('@nplayfair/npe_gerber');

const folderConfig = {
    tmpDir: path.join(__dirname, 'tmp'),
    imgDir: path.join(__dirname, 'img')
}

const imageConfig = {
    resizeWidth: 600,
    density: 1000,
    compLevel: 1
}

const gerberArchive = '/path/to/gerber.zip';

const fileProc = new ImageGenerator(folderConfig, imageConfig);

fileProc.gerberToStream(gerberArchive)
      .then(stream => {
        // Do something with the stream
      })

Image Processing Configuratation

Several values need to be set in the image configuration object. An SVG vector is first created as an intermediate step before being converted to a PNG. These correspond to the parameters passed to sharp for resizing the intermediary SVG and output PNG file. These settings are:

  • resizeWidth: Width in pixels of the output image.
  • density: DPI to create the SVG with. Low values will result in a poor quality output image.
  • compLevel: PNG compression level.

More information about these settings can be found in the sharp documentation.