# svg2img-canvas-prebuilt

> A high-performance in-memory convertor to convert svg to png/jpeg images for Node.

Latest version **0.3.0** (published 2018-05-01) · MIT license · 0 weekly downloads

## Install

```sh
npm install svg2img-canvas-prebuilt
pnpm add svg2img-canvas-prebuilt
yarn add svg2img-canvas-prebuilt
bun add svg2img-canvas-prebuilt
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.3.0 |
| Published | 2018-05-01 |
| First published | 2018-05-01 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 10.9 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 166 |
| Maintainers | bkpratt84 |

## Links

- npm: https://www.npmjs.com/package/svg2img-canvas-prebuilt
- Repository: https://github.com/fuzhenn/node-svg2img
- Homepage: https://github.com/fuzhenn/node-svg2img#readme
- Issues: https://github.com/fuzhenn/node-svg2img/issues
- npm.io page: https://npm.io/package/svg2img-canvas-prebuilt

## Dependencies (4)

- [atob](https://npm.io/package/atob.md) ^2.0.0
- [btoa](https://npm.io/package/btoa.md) ^1.1.2
- [canvg](https://npm.io/package/canvg.md) ^1.0.0
- [canvas-prebuilt](https://npm.io/package/canvas-prebuilt.md) ^1.6.5-prerelease.1

## Recent versions

- 0.3.0 (latest) — 2018-05-01

## README

# node-svg2img

[![CircleCI](https://circleci.com/gh/fuzhenn/node-svg2img.svg?style=svg)](https://circleci.com/gh/fuzhenn/node-svg2img)

A high-performance in-memory convertor to convert svg to png/jpeg images for Node.

This is a modifed version that replaces the Canvas module with Canvas-Prebuilt. This resolves a dependency issue with
newer versions of node.

Based on [canvg](https://github.com/gabelerner/canvg) and [node-canvas](https://github.com/Automattic/node-canvas)

Because of [jsdom](https://github.com/tmpvar/jsdom), it requires Node.js 4 or newer.

Please notice: this library is only for Node, can not run in browsers.

## Install

```bash
npm install svg2img
```

## Usage
### Conversion

To output JPEG image, you should install `node-canvas` with jpeg support.

```javascript
var fs = require('fs');
var svg2img = require('svg2img');
var btoa = require('btoa');

var svgString = [
'<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="236" height="120" ',
'viewBox="0 0 236 120">',
'<rect x="14" y="23" width="200" height="50" fill="#55FF55" stroke="black" stroke-width="1" />',
'</svg>'
].join('');

//1. convert from svg string
svg2img(svgString, function(error, buffer) {
    //returns a Buffer
    fs.writeFileSync('foo1.png', buffer);
});

//2. convert from svg's base64 string
svg2img(
    'data:image/svg+xml;base64,'+ btoa(svgString), 
    function(error, buffer) {
        fs.writeFileSync('foo2.png', buffer);
});

fs.writeFileSync('foo.svg', new Buffer(svgString));

//3. convert from a local file
svg2img(__dirname+'/foo.svg', function(error, buffer) {
    fs.writeFileSync('foo3.png', buffer);
});

//4. convert from a remote file
svg2img(
    'https://upload.wikimedia.org/wikipedia/commons/a/a0/Svg_example1.svg', 
    function(error, buffer) {
        fs.writeFileSync('foo4.png', buffer);
});

//5. convert to jpeg file
svg2img(svgString, {format:'jpg','quality':75}, function(error, buffer) {
    //default jpeg quality is 75
    fs.writeFileSync('foo5.jpg', buffer);
});
```

### Scale
You can scale the svg by giving width and height.
```javascript
svg2img(__dirname+'/foo.svg', {'width':800, 'height':600} ,function(error, buffer) {
    fs.writeFileSync('foo.png', buffer);
});
```

## Run the Test
```bash
    npm test
```

---
_Source: https://npm.io/package/svg2img-canvas-prebuilt · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
