70 lines
1.9 KiB
Markdown
70 lines
1.9 KiB
Markdown
# npe_gerber
|
|
|
|

|
|
|
|
**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](https://sharp.pixelplumbing.com/) 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](https://sharp.pixelplumbing.com/) documentation.
|