Files
jsowell-charger-web/jsowell-ui/node_modules/wmf/README.md
Lemon f5e6e29f00 Merge branch 'dev-zza' into dev
# Conflicts:
#	jsowell-ui/.env.development
#	jsowell-ui/.env.staging
#	jsowell-ui/bin/build-sit.bat
#	jsowell-ui/bin/build.bat
#	jsowell-ui/src/api/adapayMember/adapayMember.js
#	jsowell-ui/src/api/pile/merchant.js
#	jsowell-ui/src/router/index.js
#	jsowell-ui/src/views/financial/financeDetail.vue
#	jsowell-ui/src/views/financial/merchant.vue
#	jsowell-ui/src/views/homeIndex/homeIndex.vue
#	jsowell-ui/src/views/login.vue
#	jsowell-ui/src/views/pile/basic/detail.vue
#	jsowell-ui/src/views/pile/station/components/SiteInfo.vue
#	jsowell-ui/src/views/pile/station/detail.vue
#	jsowell-ui/src/views/pile/station/orderReport.vue
2025-06-03 14:26:37 +08:00

93 lines
1.9 KiB
Markdown

# js-wmf
Processor for Windows MetaFile (WMF) files in JS (for the browser and nodejs).
## Installation
With [npm](https://www.npmjs.org/package/wmf):
```bash
$ npm install wmf
```
In the browser:
```html
<script src="wmf.js"></script>
```
The browser exposes a variable `WMF`.
## Usage
The `data` argument is expected to be an `ArrayBuffer`, `Uint8Array` or `Buffer`
- `WMF.image_size(data)` extracts the image offset and extents, returns an Array
`[width, height]` where both metrics are measured in pixels.
- `WMF.draw_canvas(data, canvas)` parses the WMF and draws to a `Canvas`.
### Notes
- The library assumes the global `ImageData` is available. For nodejs-powered
canvas implementations, a shim must be exposed as a global. Using the `canvas`
npm package:
```js
const { createImageData } = require("canvas");
global.ImageData = createImageData;
```
- `OffscreenCanvas` in Chrome and some other Canvas implementations require
the dimensions in the constructor:
```js
const size = WMF.image_size(data);
const canvas = new OffscreenCanvas(size[0], size[1]);
```
## Examples
<details>
<summary><b>Browser Fetch into canvas</b> (click to show)</summary>
```js
// assume `canvas` is a DOM element
(async() => {
const res = await fetch("url/for/image.wmf");
const ab = await res.arrayBuffer();
WMF.draw_canvas(ab, document.getElementById("canvas"));
})();
```
</details>
<details>
<summary><b>NodeJS (using `canvas` npm module)</b> (click to show)</summary>
```js
const { createCanvas, createImageData } = require("canvas");
global.ImageData = createImageData;
const size = WMF.image_size(data);
const canvas = createCanvas(size[0], size[1]);
WMF.draw_canvas(data, canvas);
```
</details>
## License
Please consult the attached LICENSE file for details. All rights not explicitly
granted by the Apache 2.0 License are reserved by the Original Author.
## References
- `MS-WMF`: Windows Metafile Format