@cwasm/jpeg-turbo
Advanced tools
Comparing version
@@ -1,7 +0,7 @@ | ||
interface ImageData { | ||
width: number | ||
height: number | ||
data: Uint8ClampedArray | ||
} | ||
import ImageData = require('@canvas/image-data') | ||
/** | ||
* @param source - The JPEG data | ||
* @returns Decoded width, height and pixel data | ||
*/ | ||
export function decode (source: Uint8Array): ImageData |
12
index.js
@@ -6,2 +6,4 @@ /* global WebAssembly */ | ||
const ImageData = require('@canvas/image-data') | ||
const TJPF_RGBA = 7 | ||
@@ -14,7 +16,7 @@ | ||
const wasi_unstable = { | ||
const stubs = { | ||
proc_exit () { throw new Error('Syscall proc_exit not implemented') }, | ||
fd_close () { throw new Error('Syscall fd_close not implemented') }, | ||
fd_seek () { throw new Error('Syscall fd_seek not implemented') }, | ||
fd_write () { throw new Error('Syscall fd_write not implemented') }, | ||
fd_write () { throw new Error('Syscall fd_write not implemented') } | ||
} | ||
@@ -24,3 +26,3 @@ | ||
const wasmModule = new WebAssembly.Module(code) | ||
const instance = new WebAssembly.Instance(wasmModule, { env, wasi_unstable }) | ||
const instance = new WebAssembly.Instance(wasmModule, { env, wasi_unstable: stubs }) | ||
@@ -59,3 +61,3 @@ exports.decode = function (input) { | ||
const metadata = new Uint32Array(instance.exports.memory.buffer, metadataPointer, 4) | ||
const [width, height, jpegSubsamp, jpegColorspace] = metadata | ||
const [width, height] = metadata | ||
@@ -94,3 +96,3 @@ // Free the metadata in WASM land | ||
// Return decoded image as raw data | ||
return { width, height, data: output } | ||
return new ImageData(output, width, height) | ||
} |
{ | ||
"name": "@cwasm/jpeg-turbo", | ||
"version": "0.1.0", | ||
"version": "0.1.1", | ||
"repository": "LinusU/cwasm-jpeg-turbo", | ||
"license": "MIT", | ||
"repository": "LinusU/cwasm-jpeg-turbo", | ||
"files": [ | ||
@@ -15,6 +15,11 @@ "index.d.ts", | ||
}, | ||
"dependencies": { | ||
"@canvas/image-data": "^1.0.0" | ||
}, | ||
"devDependencies": { | ||
"lodepng": "^1.2.0", | ||
"mocha": "^5.2.0" | ||
"lodepng": "^2.0.0", | ||
"mocha": "^6.2.2", | ||
"standard": "^14.3.1", | ||
"ts-readme-generator": "^0.2.0" | ||
} | ||
} |
@@ -5,6 +5,9 @@ # JPEG | ||
[libjpeg-turbo]: https://libjpeg-turbo.org | ||
[WebAssembly]: https://webassembly.org | ||
## Installation | ||
```sh | ||
npm install --save @cwasm/webp | ||
npm install --save @cwasm/jpeg-turbo | ||
``` | ||
@@ -16,6 +19,6 @@ | ||
const fs = require('fs') | ||
const webp = require('@cwasm/webp') | ||
const jpeg = require('@cwasm/jpeg-turbo') | ||
const source = fs.readFileSync('image.webp') | ||
const image = webp.decode(source) | ||
const source = fs.readFileSync('image.jpg') | ||
const image = jpeg.decode(source) | ||
@@ -31,8 +34,5 @@ console.log(image) | ||
### `decode(source: Uint8Array): ImageData` | ||
### `decode(source)` | ||
Decodes raw JPEG data into an [`ImageData`][ImageData] object. | ||
[ImageData]: https://developer.mozilla.org/en-US/docs/Web/API/ImageData | ||
[libjpeg-turbo]: https://developers.google.com/speed/webp/docs/api | ||
[WebAssembly]: https://webassembly.org | ||
- `source` ([`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array), required) - The JPEG data | ||
- returns [`ImageData`](https://developer.mozilla.org/en-US/docs/Web/API/ImageData) - Decoded width, height and pixel data |
Sorry, the diff of this file is not supported yet
75
1.35%157259
-8.39%1
Infinity%4
100%+ Added
+ Added