From 6d03ebe0c62be9e4155c8f2a55edddba73cf2c63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E4=B8=9D?= Date: Fri, 24 Jun 2022 13:56:44 +0800 Subject: [PATCH 1/3] feat: add .pixel() API --- __test__/index.spec.ts | 42 ++++++++++++++++++++++++++++++++++++++++++ index.d.ts | 3 +++ js-binding.d.ts | 2 ++ src/lib.rs | 13 +++++++++++++ 4 files changed, 60 insertions(+) diff --git a/__test__/index.spec.ts b/__test__/index.spec.ts index a81721a1..5e357368 100755 --- a/__test__/index.spec.ts +++ b/__test__/index.spec.ts @@ -6,6 +6,48 @@ import jimp from 'jimp-compact' import { Resvg, renderAsync } from '../index' +/** + * Convert image to RGBA pixels Array + * Traverse the pixels in the order from left to right and top to bottom. + * + * @param {Buffer} imgBuffer + * @param {Number} width image width + * @param {Number} height image height + * @returns {Array}, e.g. [255, 0, 0, 255, 255, 0, 0, 255] + */ +async function imgToRgbaPixel(imgBuffer, width, height) { + const result = await jimp.read(imgBuffer) + + const pixels = [] + for (let y = 0; y < height; y++) { + for (let x = 0; x < width; x++) { + const pixel = jimp.intToRGBA(result.getPixelColor(x, y)) + // const rgba = `${pixel.r}, ${pixel.g}, ${pixel.b}, ${pixel.a}` + pixels.push(pixel.r) + pixels.push(pixel.g) + pixels.push(pixel.b) + pixels.push(pixel.a) + } + } + return pixels +} + +test.only('svg to RGBA pixels Array', async (t) => { + const svg = ` + + + ` + const resvg = new Resvg(svg) + const pngData = resvg.render() + const pngBuffer = pngData.asPng() + + const originPixels = pngData.pixel.toJSON().data + const pixelArray = await imgToRgbaPixel(pngBuffer, pngData.width, pngData.height) + + t.is(originPixels.length, pixelArray.length) + t.is(originPixels.toString(), pixelArray.toString()) +}) + test('fit to width', async (t) => { const filePath = '../example/text.svg' const svg = await fs.readFile(join(__dirname, filePath)) diff --git a/index.d.ts b/index.d.ts index 1b5292cf..3c324bb9 100755 --- a/index.d.ts +++ b/index.d.ts @@ -87,6 +87,9 @@ export class RenderedImage { /** Write the image data to Buffer */ asPng(): Buffer + /** Get the RGBA pixels of the image */ + get pixel(): Buffer + /** Get the PNG width */ get width(): number diff --git a/js-binding.d.ts b/js-binding.d.ts index 1e21cb98..199d2bcb 100644 --- a/js-binding.d.ts +++ b/js-binding.d.ts @@ -43,6 +43,8 @@ export class Resvg { export class RenderedImage { /** Write the image data to Buffer */ asPng(): Buffer + /** Get the RGBA pixels of the image */ + get pixel(): Buffer /** Get the PNG width */ get width(): number /** Get the PNG height */ diff --git a/src/lib.rs b/src/lib.rs index e2e8a716..8f390f47 100755 --- a/src/lib.rs +++ b/src/lib.rs @@ -107,6 +107,19 @@ impl RenderedImage { Ok(buffer.as_slice().into()) } + /// Get the RGBA pixels of the image + #[cfg(target_arch = "wasm32")] + pub fn pixel(&self) -> js_sys::Uint8Array { + self.pix.data().into() + } + + /// Get the RGBA pixels of the image + #[cfg(not(target_arch = "wasm32"))] + #[napi(getter)] + pub fn pixel(&self) -> Buffer { + self.pix.data().into() + } + #[cfg(not(target_arch = "wasm32"))] #[napi(getter)] /// Get the PNG width From e3061b4fa6802d64d2feb75be7e9620d88199a6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E4=B8=9D?= Date: Tue, 15 Nov 2022 11:03:31 +0800 Subject: [PATCH 2/3] refactor: rename pixel() to pixels() --- __test__/index.spec.ts | 9 ++++----- index.d.ts | 2 +- js-binding.d.ts | 2 +- src/lib.rs | 4 ++-- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/__test__/index.spec.ts b/__test__/index.spec.ts index 5e357368..9f9a3a9f 100755 --- a/__test__/index.spec.ts +++ b/__test__/index.spec.ts @@ -15,14 +15,13 @@ import { Resvg, renderAsync } from '../index' * @param {Number} height image height * @returns {Array}, e.g. [255, 0, 0, 255, 255, 0, 0, 255] */ -async function imgToRgbaPixel(imgBuffer, width, height) { +async function imgToRgbaPixels(imgBuffer: Buffer, width: number, height: number) { const result = await jimp.read(imgBuffer) const pixels = [] for (let y = 0; y < height; y++) { for (let x = 0; x < width; x++) { const pixel = jimp.intToRGBA(result.getPixelColor(x, y)) - // const rgba = `${pixel.r}, ${pixel.g}, ${pixel.b}, ${pixel.a}` pixels.push(pixel.r) pixels.push(pixel.g) pixels.push(pixel.b) @@ -32,7 +31,7 @@ async function imgToRgbaPixel(imgBuffer, width, height) { return pixels } -test.only('svg to RGBA pixels Array', async (t) => { +test('svg to RGBA pixels Array', async (t) => { const svg = ` @@ -41,8 +40,8 @@ test.only('svg to RGBA pixels Array', async (t) => { const pngData = resvg.render() const pngBuffer = pngData.asPng() - const originPixels = pngData.pixel.toJSON().data - const pixelArray = await imgToRgbaPixel(pngBuffer, pngData.width, pngData.height) + const originPixels = pngData.pixels.toJSON().data + const pixelArray = await imgToRgbaPixels(pngBuffer, pngData.width, pngData.height) t.is(originPixels.length, pixelArray.length) t.is(originPixels.toString(), pixelArray.toString()) diff --git a/index.d.ts b/index.d.ts index 3c324bb9..57a5fa35 100755 --- a/index.d.ts +++ b/index.d.ts @@ -88,7 +88,7 @@ export class RenderedImage { asPng(): Buffer /** Get the RGBA pixels of the image */ - get pixel(): Buffer + get pixels(): Buffer /** Get the PNG width */ get width(): number diff --git a/js-binding.d.ts b/js-binding.d.ts index 199d2bcb..c51bd166 100644 --- a/js-binding.d.ts +++ b/js-binding.d.ts @@ -44,7 +44,7 @@ export class RenderedImage { /** Write the image data to Buffer */ asPng(): Buffer /** Get the RGBA pixels of the image */ - get pixel(): Buffer + get pixels(): Buffer /** Get the PNG width */ get width(): number /** Get the PNG height */ diff --git a/src/lib.rs b/src/lib.rs index 8f390f47..9b841796 100755 --- a/src/lib.rs +++ b/src/lib.rs @@ -109,14 +109,14 @@ impl RenderedImage { /// Get the RGBA pixels of the image #[cfg(target_arch = "wasm32")] - pub fn pixel(&self) -> js_sys::Uint8Array { + pub fn pixels(&self) -> js_sys::Uint8Array { self.pix.data().into() } /// Get the RGBA pixels of the image #[cfg(not(target_arch = "wasm32"))] #[napi(getter)] - pub fn pixel(&self) -> Buffer { + pub fn pixels(&self) -> Buffer { self.pix.data().into() } From 2bac4a897b882560ecf8f688515836d46fa8ab2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E4=B8=9D?= Date: Tue, 15 Nov 2022 11:43:21 +0800 Subject: [PATCH 3/3] feat: add get pixels API and test cases for Wasm --- __test__/helper.ts | 27 +++++++++++++++++++++++++++ __test__/index.spec.ts | 27 ++------------------------- __test__/wasm.spec.ts | 18 ++++++++++++++++++ src/lib.rs | 1 + wasm/index.d.ts | 4 ++++ wasm/index.js | 4 ++++ wasm/index.min.js | 2 +- wasm/index.mjs | 4 ++++ wasm/index_bg.wasm | Bin 1229424 -> 1229583 bytes 9 files changed, 61 insertions(+), 26 deletions(-) create mode 100755 __test__/helper.ts diff --git a/__test__/helper.ts b/__test__/helper.ts new file mode 100755 index 00000000..1fdc5015 --- /dev/null +++ b/__test__/helper.ts @@ -0,0 +1,27 @@ +import jimp from 'jimp-compact' + +/** + * Convert image to RGBA pixels Array + * Traverse the pixels in the order from left to right and top to bottom. + * + * @param {Buffer} imgBuffer + * @param {Number} width image width + * @param {Number} height image height + * @returns {Array}, e.g. [255, 0, 0, 255, 255, 0, 0, 255] + */ +async function jimpToRgbaPixels(imgBuffer: Buffer, width: number, height: number) { + const result = await jimp.read(imgBuffer) + const pixels = [] + for (let y = 0; y < height; y++) { + for (let x = 0; x < width; x++) { + const pixel = jimp.intToRGBA(result.getPixelColor(x, y)) + pixels.push(pixel.r) + pixels.push(pixel.g) + pixels.push(pixel.b) + pixels.push(pixel.a) + } + } + return pixels +} + +export { jimpToRgbaPixels } diff --git a/__test__/index.spec.ts b/__test__/index.spec.ts index 9f9a3a9f..9054c413 100755 --- a/__test__/index.spec.ts +++ b/__test__/index.spec.ts @@ -6,30 +6,7 @@ import jimp from 'jimp-compact' import { Resvg, renderAsync } from '../index' -/** - * Convert image to RGBA pixels Array - * Traverse the pixels in the order from left to right and top to bottom. - * - * @param {Buffer} imgBuffer - * @param {Number} width image width - * @param {Number} height image height - * @returns {Array}, e.g. [255, 0, 0, 255, 255, 0, 0, 255] - */ -async function imgToRgbaPixels(imgBuffer: Buffer, width: number, height: number) { - const result = await jimp.read(imgBuffer) - - const pixels = [] - for (let y = 0; y < height; y++) { - for (let x = 0; x < width; x++) { - const pixel = jimp.intToRGBA(result.getPixelColor(x, y)) - pixels.push(pixel.r) - pixels.push(pixel.g) - pixels.push(pixel.b) - pixels.push(pixel.a) - } - } - return pixels -} +import { jimpToRgbaPixels } from './helper' test('svg to RGBA pixels Array', async (t) => { const svg = ` @@ -41,7 +18,7 @@ test('svg to RGBA pixels Array', async (t) => { const pngBuffer = pngData.asPng() const originPixels = pngData.pixels.toJSON().data - const pixelArray = await imgToRgbaPixels(pngBuffer, pngData.width, pngData.height) + const pixelArray = await jimpToRgbaPixels(pngBuffer, pngData.width, pngData.height) t.is(originPixels.length, pixelArray.length) t.is(originPixels.toString(), pixelArray.toString()) diff --git a/__test__/wasm.spec.ts b/__test__/wasm.spec.ts index 5268f2d9..c9d92967 100755 --- a/__test__/wasm.spec.ts +++ b/__test__/wasm.spec.ts @@ -7,11 +7,29 @@ import jimp from 'jimp-compact' import { Resvg, initWasm } from '../wasm' +import { jimpToRgbaPixels } from './helper' + // Init Wasm test.before(async () => { await initWasm(fs.readFile(join(__dirname, '../wasm/index_bg.wasm'))) }) +test('svg to RGBA pixels Array', async (t) => { + const svg = ` + + + ` + const resvg = new Resvg(svg) + const pngData = resvg.render() + const pngBuffer = pngData.asPng() + + const originPixels = Array.from(pngData.pixels) + const pixelArray = await jimpToRgbaPixels(Buffer.from(pngBuffer), pngData.width, pngData.height) + + t.is(originPixels.length, pixelArray.length) + t.is(originPixels.toString(), pixelArray.toString()) +}) + test('buffer input', async (t) => { const filePath = '../example/text.svg' const svg = await fs.readFile(join(__dirname, filePath)) diff --git a/src/lib.rs b/src/lib.rs index 9b841796..3088ad8a 100755 --- a/src/lib.rs +++ b/src/lib.rs @@ -109,6 +109,7 @@ impl RenderedImage { /// Get the RGBA pixels of the image #[cfg(target_arch = "wasm32")] + #[wasm_bindgen(getter)] pub fn pixels(&self) -> js_sys::Uint8Array { self.pix.data().into() } diff --git a/wasm/index.d.ts b/wasm/index.d.ts index 1ae7099d..7f8418f8 100644 --- a/wasm/index.d.ts +++ b/wasm/index.d.ts @@ -27,6 +27,10 @@ declare class RenderedImage { */ readonly height: number; /** + * Get the RGBA pixels of the image + */ + readonly pixels: Uint8Array; + /** * Get the PNG width */ readonly width: number; diff --git a/wasm/index.js b/wasm/index.js index db39636d..604f625e 100644 --- a/wasm/index.js +++ b/wasm/index.js @@ -204,6 +204,10 @@ var RenderedImage = class { wasm.__wbindgen_add_to_stack_pointer(16); } } + get pixels() { + const ret = wasm.renderedimage_pixels(this.ptr); + return takeObject(ret); + } }; var Resvg = class { static __wrap(ptr) { diff --git a/wasm/index.min.js b/wasm/index.min.js index 656d5194..633f01dd 100644 --- a/wasm/index.min.js +++ b/wasm/index.min.js @@ -1 +1 @@ -"use strict";var resvg=(()=>{var W=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var T=(e,t)=>{for(var n in t)W(e,n,{get:t[n],enumerable:!0})},L=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of S(t))!E.call(e,o)&&o!==n&&W(e,o,{get:()=>t[o],enumerable:!(i=M(t,o))||i.enumerable});return e};var C=e=>L(W({},"__esModule",{value:!0}),e);var V={};T(V,{Resvg:()=>J,initWasm:()=>H});var r,g=new Array(32).fill(void 0);g.push(void 0,null,!0,!1);var h=g.length;function b(e){h===g.length&&g.push(g.length+1);let t=h;return h=g[t],g[t]=e,t}function c(e){return g[e]}function z(e){e<36||(g[e]=h,h=e)}function d(e){let t=c(e);return z(e),t}var l=0,m=new Uint8Array;function v(){return m.byteLength===0&&(m=new Uint8Array(r.memory.buffer)),m}var x=new TextEncoder("utf-8"),P=typeof x.encodeInto=="function"?function(e,t){return x.encodeInto(e,t)}:function(e,t){let n=x.encode(e);return t.set(n),{read:e.length,written:n.length}};function k(e,t,n){if(n===void 0){let a=x.encode(e),f=t(a.length);return v().subarray(f,f+a.length).set(a),l=a.length,f}let i=e.length,o=t(i),w=v(),_=0;for(;_127)break;w[o+_]=a}if(_!==i){_!==0&&(e=e.slice(_)),o=n(o,i,i=_+e.length*3);let a=v().subarray(o+_,o+i);_+=P(e,a).written}return l=_,o}function U(e){return e==null}var A=new Int32Array;function s(){return A.byteLength===0&&(A=new Int32Array(r.memory.buffer)),A}var j=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});j.decode();function I(e,t){return j.decode(v().subarray(e,e+t))}function F(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`);return e.ptr}var u=class{static __wrap(t){let n=Object.create(u.prototype);return n.ptr=t,n}__destroy_into_raw(){let t=this.ptr;return this.ptr=0,t}free(){let t=this.__destroy_into_raw();r.__wbg_bbox_free(t)}get x(){return r.__wbg_get_bbox_x(this.ptr)}set x(t){r.__wbg_set_bbox_x(this.ptr,t)}get y(){return r.__wbg_get_bbox_y(this.ptr)}set y(t){r.__wbg_set_bbox_y(this.ptr,t)}get width(){return r.__wbg_get_bbox_width(this.ptr)}set width(t){r.__wbg_set_bbox_width(this.ptr,t)}get height(){return r.__wbg_get_bbox_height(this.ptr)}set height(t){r.__wbg_set_bbox_height(this.ptr,t)}},y=class{static __wrap(t){let n=Object.create(y.prototype);return n.ptr=t,n}__destroy_into_raw(){let t=this.ptr;return this.ptr=0,t}free(){let t=this.__destroy_into_raw();r.__wbg_renderedimage_free(t)}get width(){return r.renderedimage_width(this.ptr)>>>0}get height(){return r.renderedimage_height(this.ptr)>>>0}asPng(){try{let o=r.__wbindgen_add_to_stack_pointer(-16);r.renderedimage_asPng(o,this.ptr);var t=s()[o/4+0],n=s()[o/4+1],i=s()[o/4+2];if(i)throw d(n);return d(t)}finally{r.__wbindgen_add_to_stack_pointer(16)}}},p=class{static __wrap(t){let n=Object.create(p.prototype);return n.ptr=t,n}__destroy_into_raw(){let t=this.ptr;return this.ptr=0,t}free(){let t=this.__destroy_into_raw();r.__wbg_resvg_free(t)}constructor(t,n){try{let f=r.__wbindgen_add_to_stack_pointer(-16);var i=U(n)?0:k(n,r.__wbindgen_malloc,r.__wbindgen_realloc),o=l;r.resvg_new(f,b(t),i,o);var w=s()[f/4+0],_=s()[f/4+1],a=s()[f/4+2];if(a)throw d(_);return p.__wrap(w)}finally{r.__wbindgen_add_to_stack_pointer(16)}}get width(){return r.resvg_width(this.ptr)}get height(){return r.resvg_height(this.ptr)}render(){try{let o=r.__wbindgen_add_to_stack_pointer(-16);r.resvg_render(o,this.ptr);var t=s()[o/4+0],n=s()[o/4+1],i=s()[o/4+2];if(i)throw d(n);return y.__wrap(t)}finally{r.__wbindgen_add_to_stack_pointer(16)}}toString(){try{let i=r.__wbindgen_add_to_stack_pointer(-16);r.resvg_toString(i,this.ptr);var t=s()[i/4+0],n=s()[i/4+1];return I(t,n)}finally{r.__wbindgen_add_to_stack_pointer(16),r.__wbindgen_free(t,n)}}innerBBox(){let t=r.resvg_innerBBox(this.ptr);return t===0?void 0:u.__wrap(t)}getBBox(){let t=r.resvg_getBBox(this.ptr);return t===0?void 0:u.__wrap(t)}cropByBBox(t){F(t,u),r.resvg_cropByBBox(this.ptr,t.ptr)}imagesToResolve(){try{let o=r.__wbindgen_add_to_stack_pointer(-16);r.resvg_imagesToResolve(o,this.ptr);var t=s()[o/4+0],n=s()[o/4+1],i=s()[o/4+2];if(i)throw d(n);return d(t)}finally{r.__wbindgen_add_to_stack_pointer(16)}}resolveImage(t,n){try{let w=r.__wbindgen_add_to_stack_pointer(-16),_=k(t,r.__wbindgen_malloc,r.__wbindgen_realloc),a=l;r.resvg_resolveImage(w,this.ptr,_,a,b(n));var i=s()[w/4+0],o=s()[w/4+1];if(o)throw d(i)}finally{r.__wbindgen_add_to_stack_pointer(16)}}};async function N(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if(e.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i);else throw i}let n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}else{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}}function q(){let e={};return e.wbg={},e.wbg.__wbg_new_8d2af00bc1e329ee=function(t,n){let i=new Error(I(t,n));return b(i)},e.wbg.__wbindgen_memory=function(){let t=r.memory;return b(t)},e.wbg.__wbg_buffer_3f3d764d4747d564=function(t){let n=c(t).buffer;return b(n)},e.wbg.__wbg_newwithbyteoffsetandlength_d9aa266703cb98be=function(t,n,i){let o=new Uint8Array(c(t),n>>>0,i>>>0);return b(o)},e.wbg.__wbindgen_object_drop_ref=function(t){d(t)},e.wbg.__wbg_new_8c3f0052272a457a=function(t){let n=new Uint8Array(c(t));return b(n)},e.wbg.__wbg_instanceof_Uint8Array_971eeda69eb75003=function(t){let n;try{n=c(t)instanceof Uint8Array}catch(o){n=!1}return n},e.wbg.__wbindgen_string_get=function(t,n){let i=c(n),o=typeof i=="string"?i:void 0;var w=U(o)?0:k(o,r.__wbindgen_malloc,r.__wbindgen_realloc),_=l;s()[t/4+1]=_,s()[t/4+0]=w},e.wbg.__wbg_new_1d9a920c6bfc44a8=function(){let t=new Array;return b(t)},e.wbg.__wbindgen_string_new=function(t,n){let i=I(t,n);return b(i)},e.wbg.__wbg_push_740e4b286702d964=function(t,n){return c(t).push(c(n))},e.wbg.__wbg_length_9e1ae1900cb0fbd5=function(t){return c(t).length},e.wbg.__wbg_set_83db9690f9353e79=function(t,n,i){c(t).set(c(n),i>>>0)},e.wbg.__wbindgen_throw=function(t,n){throw new Error(I(t,n))},e}function D(e,t){return r=e.exports,B.__wbindgen_wasm_module=t,A=new Int32Array,m=new Uint8Array,r}async function B(e){typeof e=="undefined"&&(e=new URL("index_bg.wasm",void 0));let t=q();(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:i}=await N(await e,t);return D(n,i)}var R=B;var O=!1,H=async e=>{if(O)throw new Error("Already initialized. The `initWasm()` function can be used only once.");await R(await e),O=!0},J=class extends p{constructor(e,t){if(!O)throw new Error("Wasm has not been initialized. Call `initWasm()` function.");super(e,JSON.stringify(t))}};return C(V);})(); +"use strict";var resvg=(()=>{var W=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var T=(e,t)=>{for(var n in t)W(e,n,{get:t[n],enumerable:!0})},L=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of S(t))!E.call(e,o)&&o!==n&&W(e,o,{get:()=>t[o],enumerable:!(i=M(t,o))||i.enumerable});return e};var C=e=>L(W({},"__esModule",{value:!0}),e);var V={};T(V,{Resvg:()=>J,initWasm:()=>H});var r,g=new Array(32).fill(void 0);g.push(void 0,null,!0,!1);var h=g.length;function b(e){h===g.length&&g.push(g.length+1);let t=h;return h=g[t],g[t]=e,t}function c(e){return g[e]}function z(e){e<36||(g[e]=h,h=e)}function d(e){let t=c(e);return z(e),t}var l=0,m=new Uint8Array;function v(){return m.byteLength===0&&(m=new Uint8Array(r.memory.buffer)),m}var x=new TextEncoder("utf-8"),P=typeof x.encodeInto=="function"?function(e,t){return x.encodeInto(e,t)}:function(e,t){let n=x.encode(e);return t.set(n),{read:e.length,written:n.length}};function k(e,t,n){if(n===void 0){let a=x.encode(e),f=t(a.length);return v().subarray(f,f+a.length).set(a),l=a.length,f}let i=e.length,o=t(i),w=v(),_=0;for(;_127)break;w[o+_]=a}if(_!==i){_!==0&&(e=e.slice(_)),o=n(o,i,i=_+e.length*3);let a=v().subarray(o+_,o+i);_+=P(e,a).written}return l=_,o}function U(e){return e==null}var A=new Int32Array;function s(){return A.byteLength===0&&(A=new Int32Array(r.memory.buffer)),A}var j=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});j.decode();function I(e,t){return j.decode(v().subarray(e,e+t))}function F(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`);return e.ptr}var u=class{static __wrap(t){let n=Object.create(u.prototype);return n.ptr=t,n}__destroy_into_raw(){let t=this.ptr;return this.ptr=0,t}free(){let t=this.__destroy_into_raw();r.__wbg_bbox_free(t)}get x(){return r.__wbg_get_bbox_x(this.ptr)}set x(t){r.__wbg_set_bbox_x(this.ptr,t)}get y(){return r.__wbg_get_bbox_y(this.ptr)}set y(t){r.__wbg_set_bbox_y(this.ptr,t)}get width(){return r.__wbg_get_bbox_width(this.ptr)}set width(t){r.__wbg_set_bbox_width(this.ptr,t)}get height(){return r.__wbg_get_bbox_height(this.ptr)}set height(t){r.__wbg_set_bbox_height(this.ptr,t)}},y=class{static __wrap(t){let n=Object.create(y.prototype);return n.ptr=t,n}__destroy_into_raw(){let t=this.ptr;return this.ptr=0,t}free(){let t=this.__destroy_into_raw();r.__wbg_renderedimage_free(t)}get width(){return r.renderedimage_width(this.ptr)>>>0}get height(){return r.renderedimage_height(this.ptr)>>>0}asPng(){try{let o=r.__wbindgen_add_to_stack_pointer(-16);r.renderedimage_asPng(o,this.ptr);var t=s()[o/4+0],n=s()[o/4+1],i=s()[o/4+2];if(i)throw d(n);return d(t)}finally{r.__wbindgen_add_to_stack_pointer(16)}}get pixels(){let t=r.renderedimage_pixels(this.ptr);return d(t)}},p=class{static __wrap(t){let n=Object.create(p.prototype);return n.ptr=t,n}__destroy_into_raw(){let t=this.ptr;return this.ptr=0,t}free(){let t=this.__destroy_into_raw();r.__wbg_resvg_free(t)}constructor(t,n){try{let f=r.__wbindgen_add_to_stack_pointer(-16);var i=U(n)?0:k(n,r.__wbindgen_malloc,r.__wbindgen_realloc),o=l;r.resvg_new(f,b(t),i,o);var w=s()[f/4+0],_=s()[f/4+1],a=s()[f/4+2];if(a)throw d(_);return p.__wrap(w)}finally{r.__wbindgen_add_to_stack_pointer(16)}}get width(){return r.resvg_width(this.ptr)}get height(){return r.resvg_height(this.ptr)}render(){try{let o=r.__wbindgen_add_to_stack_pointer(-16);r.resvg_render(o,this.ptr);var t=s()[o/4+0],n=s()[o/4+1],i=s()[o/4+2];if(i)throw d(n);return y.__wrap(t)}finally{r.__wbindgen_add_to_stack_pointer(16)}}toString(){try{let i=r.__wbindgen_add_to_stack_pointer(-16);r.resvg_toString(i,this.ptr);var t=s()[i/4+0],n=s()[i/4+1];return I(t,n)}finally{r.__wbindgen_add_to_stack_pointer(16),r.__wbindgen_free(t,n)}}innerBBox(){let t=r.resvg_innerBBox(this.ptr);return t===0?void 0:u.__wrap(t)}getBBox(){let t=r.resvg_getBBox(this.ptr);return t===0?void 0:u.__wrap(t)}cropByBBox(t){F(t,u),r.resvg_cropByBBox(this.ptr,t.ptr)}imagesToResolve(){try{let o=r.__wbindgen_add_to_stack_pointer(-16);r.resvg_imagesToResolve(o,this.ptr);var t=s()[o/4+0],n=s()[o/4+1],i=s()[o/4+2];if(i)throw d(n);return d(t)}finally{r.__wbindgen_add_to_stack_pointer(16)}}resolveImage(t,n){try{let w=r.__wbindgen_add_to_stack_pointer(-16),_=k(t,r.__wbindgen_malloc,r.__wbindgen_realloc),a=l;r.resvg_resolveImage(w,this.ptr,_,a,b(n));var i=s()[w/4+0],o=s()[w/4+1];if(o)throw d(i)}finally{r.__wbindgen_add_to_stack_pointer(16)}}};async function N(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if(e.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i);else throw i}let n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}else{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}}function q(){let e={};return e.wbg={},e.wbg.__wbg_new_8d2af00bc1e329ee=function(t,n){let i=new Error(I(t,n));return b(i)},e.wbg.__wbindgen_memory=function(){let t=r.memory;return b(t)},e.wbg.__wbg_buffer_3f3d764d4747d564=function(t){let n=c(t).buffer;return b(n)},e.wbg.__wbg_newwithbyteoffsetandlength_d9aa266703cb98be=function(t,n,i){let o=new Uint8Array(c(t),n>>>0,i>>>0);return b(o)},e.wbg.__wbindgen_object_drop_ref=function(t){d(t)},e.wbg.__wbg_new_8c3f0052272a457a=function(t){let n=new Uint8Array(c(t));return b(n)},e.wbg.__wbg_instanceof_Uint8Array_971eeda69eb75003=function(t){let n;try{n=c(t)instanceof Uint8Array}catch(o){n=!1}return n},e.wbg.__wbindgen_string_get=function(t,n){let i=c(n),o=typeof i=="string"?i:void 0;var w=U(o)?0:k(o,r.__wbindgen_malloc,r.__wbindgen_realloc),_=l;s()[t/4+1]=_,s()[t/4+0]=w},e.wbg.__wbg_new_1d9a920c6bfc44a8=function(){let t=new Array;return b(t)},e.wbg.__wbindgen_string_new=function(t,n){let i=I(t,n);return b(i)},e.wbg.__wbg_push_740e4b286702d964=function(t,n){return c(t).push(c(n))},e.wbg.__wbg_length_9e1ae1900cb0fbd5=function(t){return c(t).length},e.wbg.__wbg_set_83db9690f9353e79=function(t,n,i){c(t).set(c(n),i>>>0)},e.wbg.__wbindgen_throw=function(t,n){throw new Error(I(t,n))},e}function D(e,t){return r=e.exports,B.__wbindgen_wasm_module=t,A=new Int32Array,m=new Uint8Array,r}async function B(e){typeof e=="undefined"&&(e=new URL("index_bg.wasm",void 0));let t=q();(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:i}=await N(await e,t);return D(n,i)}var R=B;var O=!1,H=async e=>{if(O)throw new Error("Already initialized. The `initWasm()` function can be used only once.");await R(await e),O=!0},J=class extends p{constructor(e,t){if(!O)throw new Error("Wasm has not been initialized. Call `initWasm()` function.");super(e,JSON.stringify(t))}};return C(V);})(); diff --git a/wasm/index.mjs b/wasm/index.mjs index 2f79935e..b668020f 100644 --- a/wasm/index.mjs +++ b/wasm/index.mjs @@ -177,6 +177,10 @@ var RenderedImage = class { wasm.__wbindgen_add_to_stack_pointer(16); } } + get pixels() { + const ret = wasm.renderedimage_pixels(this.ptr); + return takeObject(ret); + } }; var Resvg = class { static __wrap(ptr) { diff --git a/wasm/index_bg.wasm b/wasm/index_bg.wasm index 9d4a04b152b202572579bf7210c381645cf276a6..8abebbad5783e4a80af3f8a2a148cf3c95d06bdc 100644 GIT binary patch delta 41082 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 Se@AwEBfpw-es$!aul@t>J`ywl