v2.2.0
What's Changed
Now resvg-js can be run natively (not Wasm) directly in Deno, this allows to get close to the performance of Node.js native addons in Deno.
deno run --unstable --allow-read --allow-write --allow-ffi example/index-deno.js
See Deno Example
import * as path from 'https://deno.land/std@0.159.0/path/mod.ts'
import { Resvg } from 'npm:@resvg/resvg-js'
const __dirname = path.dirname(path.fromFileUrl(import.meta.url))
const svg = await Deno.readFile(path.join(__dirname, './text.svg'))
const resvg = new Resvg(svg, opts)
const pngData = resvg.render()
const pngBuffer = pngData.asPng()
await Deno.writeFile(path.join(__dirname, './text-out-deno.png'), pngBuffer)
In addition, resvg-js can return the raw pixels data of the PNG, which can be very convenient for scenes where only pixels need to be processed.
Added
- feat: add
.pixels()
API for returning PNG pixels data (#123). - chore: upgrade to resvg v0.25.0 (by @zimond in #156).
- Partial
paint-order
attribute support. Markers can only be under or above the shape. - CSS3
writing-mode
variantsvertical-rl
andvertical-lr
. Thanks to @yisibl. - (tiny-skia) AArch64 Neon SIMD support. Up to 3x faster on Apple M1.
- Path bbox calculation scales stroke width too. Thanks to @growler.
- (tiny-skia) Round caps roundness. Fixes #155.
- Partial
Changed
- build: x86_64-linux-gnu and aarch64-linux-gnu are no longer compiled using Zig. (#125)
- doc: the
dpi
option is not the DPI in the PNG file. (#146) - chore: add deno example and docs. (#154)
- feat: upgrade napi-rs to 2.10.0 and Node.js v18. (#157)
- test: add image resolver API test case. (#164)
- feat: remove the
infer
crate, this can reduce the size of Wasm files. - feat: remove the infer crate, this reduced the size of the Wasm file by about 4.3%. (#165)
- Before: 1360609 bytes
- After: 1302173 bytes
- feat: error code UnrecognizedBuffer changed to UnsupportedImage. (#165)
Fixed
New Contributors
Full Changelog: v2.1.0...v2.2.0