Skip to content

v2.2.0

Compare
Choose a tag to compare
@github-actions github-actions released this 17 Nov 16:08
· 138 commits to main since this release

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 variants vertical-rl and vertical-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.

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

  • fix: ignore png crate in renovate.json. (by @CGQAQ in #161)

New Contributors

Full Changelog: v2.1.0...v2.2.0