imagescript 1.2.9 → 1.2.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/ImageScript.d.ts +223 -0
  2. package/ImageScript.js +1646 -1682
  3. package/LICENSE +619 -0
  4. package/README.md +46 -45
  5. package/bench/_.mjs +166 -0
  6. package/bench/all.mjs +4 -0
  7. package/bench/blur.mjs +59 -0
  8. package/bench/flip.mjs +63 -0
  9. package/bench/overlay.mjs +35 -0
  10. package/bench/package.json +7 -0
  11. package/bench/readme.md +64 -0
  12. package/bench/resize.mjs +52 -0
  13. package/codecs/LICENSE +21 -0
  14. package/codecs/lib.d.ts +50 -0
  15. package/codecs/lib.js +6 -0
  16. package/codecs/lib.mjs +1 -0
  17. package/codecs/node/bin/arm64-darwin.node +0 -0
  18. package/{node → codecs/node/bin}/arm64-linux.node +0 -0
  19. package/codecs/node/bin/x64-darwin.node +0 -0
  20. package/{node → codecs/node/bin}/x64-linux.node +0 -0
  21. package/{node → codecs/node/bin}/x64-win32.node +0 -0
  22. package/codecs/node/index.js +3 -0
  23. package/codecs/node/index.mjs +6 -0
  24. package/codecs/package.json +14 -0
  25. package/codecs/readme.md +38 -0
  26. package/{wasm/simd.wasm → codecs/tests/gif.js} +0 -0
  27. package/{wasm/unknown.wasm → codecs/tests/jpeg.js} +0 -0
  28. package/codecs/tests/png.js +0 -0
  29. package/codecs/tests/results/gif/1024.nis.gif +0 -0
  30. package/codecs/tests/results/gif/1024.skyra.gif +0 -0
  31. package/codecs/tests/results/gif/256.nis.gif +0 -0
  32. package/codecs/tests/results/gif/256.skyra.gif +0 -0
  33. package/codecs/tests/results/jpeg/256.jpegjs.jpeg +0 -0
  34. package/codecs/tests/results/jpeg/256.nis.jpeg +0 -0
  35. package/codecs/tests/results/jpeg/256.sharp.jpeg +0 -0
  36. package/codecs/tests/results/jpeg/512.jpegjs.jpeg +0 -0
  37. package/codecs/tests/results/jpeg/512.nis.jpeg +0 -0
  38. package/codecs/tests/results/jpeg/512.sharp.jpeg +0 -0
  39. package/codecs/tests/results/jpeg/64.jpegjs.jpeg +0 -0
  40. package/codecs/tests/results/jpeg/64.nis.jpeg +0 -0
  41. package/codecs/tests/results/jpeg/64.sharp.jpeg +0 -0
  42. package/codecs/tests/results/png/256.jis.png +0 -0
  43. package/codecs/tests/results/png/256.nis.png +0 -0
  44. package/codecs/tests/results/png/256.sharp.png +0 -0
  45. package/codecs/tests/results/png/256.upng.png +0 -0
  46. package/codecs/tests/results/png/512.jis.png +0 -0
  47. package/codecs/tests/results/png/512.nis.png +0 -0
  48. package/codecs/tests/results/png/512.sharp.png +0 -0
  49. package/codecs/tests/results/png/512.upng.png +0 -0
  50. package/codecs/tests/results/png/64.jis.png +0 -0
  51. package/codecs/tests/results/png/64.nis.png +0 -0
  52. package/codecs/tests/results/png/64.sharp.png +0 -0
  53. package/codecs/tests/results/png/64.upng.png +0 -0
  54. package/codecs/tests/webp.js +0 -0
  55. package/codecs/wasm/bin/codecs.wasm +0 -0
  56. package/codecs/wasm/bin/simd.wasm +0 -0
  57. package/codecs/wasm/bundle/browser.js +1 -0
  58. package/codecs/wasm/index.js +1 -0
  59. package/codecs/wasm/index.mjs +1 -0
  60. package/package.json +41 -28
  61. package/png/node.js +1137 -1137
  62. package/png/src/{crc.js → crc.mjs} +48 -48
  63. package/png/src/{mem.js → mem.mjs} +23 -23
  64. package/png/src/{png.js → png.mjs} +254 -254
  65. package/png/src/{zlib.js → zlib.mjs} +617 -617
  66. package/tsconfig.json +21 -0
  67. package/utils/mem.js +25 -25
  68. package/v2/codecs/magic.js +24 -24
  69. package/v2/framebuffer.d.ts +66 -66
  70. package/v2/framebuffer.js +2352 -2371
  71. package/v2/framebuffer.mjs +125 -125
  72. package/v2/framebuffer.rs +1264 -0
  73. package/v2/index.d.ts +83 -83
  74. package/v2/index.js +260 -260
  75. package/v2/ops/{blur.js → blur.mjs} +302 -302
  76. package/v2/ops/{color.js → color.mjs} +276 -276
  77. package/v2/ops/{crop.js → crop.mjs} +63 -63
  78. package/v2/ops/{fill.js → fill.mjs} +32 -32
  79. package/v2/ops/{flip.js → flip.mjs} +32 -32
  80. package/v2/ops/index.mjs +9 -0
  81. package/v2/ops/{iterator.js → iterator.mjs} +33 -33
  82. package/v2/ops/overlay.mjs +63 -0
  83. package/v2/ops/{resize.js → resize.mjs} +165 -165
  84. package/v2/ops/{rotate.js → rotate.mjs} +116 -117
  85. package/v2/util/{mem.js → mem.mjs} +24 -26
  86. package/wasm/any/font.wasm +0 -0
  87. package/wasm/any/png.wasm +0 -0
  88. package/wasm/node/font.js +141 -141
  89. package/wasm/node/gif.js +76 -76
  90. package/wasm/node/jpeg.js +91 -91
  91. package/wasm/node/png.js +49 -0
  92. package/wasm/node/svg.js +55 -55
  93. package/wasm/node/tiff.js +46 -46
  94. package/node/arm64-darwin.node +0 -0
  95. package/node/index.js +0 -7
  96. package/node/x64-darwin.node +0 -0
  97. package/v2/ops/index.js +0 -9
  98. package/v2/ops/overlay.js +0 -56
  99. package/wasm/node.js +0 -23
  100. package/wasm/web.js +0 -10
@@ -0,0 +1,6 @@
1
+ import lib from './index.js';
2
+
3
+ export const png = lib.png;
4
+ export const gif = lib.gif;
5
+ export const jpeg = lib.jpeg;
6
+ export const webp = lib.webp;
@@ -0,0 +1,14 @@
1
+ {
2
+ "license": "MIT",
3
+ "main": "lib.js",
4
+ "version": "0.0.1",
5
+ "types": "lib.d.ts",
6
+ "name": "@imagescript/codecs",
7
+ "description": "fast codecs bindings for node and browsers",
8
+ "author": "imagescript (https://github.com/matmen/imagescript)",
9
+ "bugs": { "url": "https://github.com/matmen/imagescript/issues" },
10
+ "homepage": "https://github.com/matmen/ImageScript/blob/master/codecs/readme.md",
11
+ "repository": { "type": "git", "url": "git+https://github.com/matmen/imagescript.git" },
12
+ "exports": { ".": [{ "import": "./lib.mjs", "require": "./lib.js" }, "./lib.js"], "./*": "./*" },
13
+ "keywords": ["png", "jpg", "gif", "jpeg", "webp", "fast", "wasm", "codecs", "native", "bindings"]
14
+ }
@@ -0,0 +1,38 @@
1
+ # fast codecs bindings for node and browsers
2
+
3
+ `npm i @imagescript/codecs`
4
+
5
+ ```js
6
+ import { png } from '@imagescript/codecs';
7
+
8
+ const rgba = new Uint32Array(256 * 256);
9
+ const image = png.encode(rgba, { width: 256, height: 256 });
10
+ ```
11
+
12
+ ## supported platforms
13
+ | | node@10 | node@12 | node@14 | node@16 |
14
+ | ---------------- | ------- | ------- | ------- | ------- |
15
+ | wasm32 | ✕ | ✕ | ✕ | ✕ |
16
+ | macos x64 | ✓ | ✓ | ✓ | ✓ |
17
+ | macos arm64 | ✓ | ✓ | ✓ | ✓ |
18
+ | windows x64 | ✓ | ✓ | ✓ | ✓ |
19
+ | linux x64 gnu | ✓ | ✓ | ✓ | ✓ |
20
+ | linux arm64 gnu | ✓ | ✓ | ✓ | ✓ |
21
+
22
+ you can force usage of wasm by setting `CODECS_FORCE_WASM` env variable
23
+
24
+ for deno and browsers use `@imagescript/codecs/wasm/bundle/browser.js` [cdn](https://unpkg.com/@imagescript/codecs/wasm/bundle/browser.js)
25
+
26
+ ## benchmarks
27
+
28
+ image used for benchmarks: `new framebuffer(width, height).fill((x, y) => x * y)`
29
+
30
+ ![benchmark](https://plot.evan.lol/bar/eyJ0aXRsZSI6IkdJRiBvcHMvcyAoaGlnaGVyIGlzIGJldHRlcikiLCJwb2ludHMiOlt7Im5hbWUiOiJlbmNvZGUoNXggUkdCQSAyNTZ4MjU2KSIsInNjb3JlcyI6WzE0LjU2LDIuMzZdfSx7Im5hbWUiOiJlbmNvZGUoNXggUkdCQSAxMDI0eDEwMjQpIiwic2NvcmVzIjpbMC43MywwLjIxXX1dLCJsZWdlbmQiOlt7Im5hbWUiOiJuYXRpdmUoQGltYWdlc2NyaXB0L2NvZGVjcykiLCJjb2xvciI6ODUxMTM4MDQ3fSx7Im5hbWUiOiJqcyhAc2t5cmEvZ2lmZW5jKSIsImNvbG9yIjotMTI1MDk3MjY3M31dfQ==.png)
31
+
32
+ ![benchmark](https://plot.evan.lol/bar/eyJ0aXRsZSI6IkpQRUcgb3BzL3MgKGhpZ2hlciBpcyBiZXR0ZXIpIiwicG9pbnRzIjpbeyJuYW1lIjoiZW5jb2RlKFJHQkEgNjR4NjQpIiwic2NvcmVzIjpbNDMuNTgsNTcyOS4wOCw4MTEuMjldfSx7Im5hbWUiOiJlbmNvZGUoUkdCQSAyNTZ4MjU2KSIsInNjb3JlcyI6WzMyLjQ0LDM2NS45MywyMjguN119LHsibmFtZSI6ImVuY29kZShSR0JBIDUxMng1MTIpIiwic2NvcmVzIjpbMTYuMjIsODIuOTgsNzkuMjddfSx7Im5hbWUiOiJlbmNvZGUoUkdCQSAxMDI0eDEwMjQpIiwic2NvcmVzIjpbNC4yMiwxOS4xNiwyMi43OV19LHsibmFtZSI6ImVuY29kZShSR0JBIDIwNDh4MjA0OCkiLCJzY29yZXMiOlsxLjA1LDQuODksNS42N119XSwibGVnZW5kIjpbeyJuYW1lIjoianMoanBlZy1qcykiLCJjb2xvciI6ODUxMTM4MDQ3fSx7Im5hbWUiOiJuYXRpdmUoQGltYWdlc2NyaXB0L2NvZGVjcykiLCJjb2xvciI6LTEyNTA5NzI2NzN9LHsibmFtZSI6Im5hdGl2ZShzaGFycCkiLCJjb2xvciI6LTExNTY1MDA0ODF9XX0=.png)
33
+
34
+ ![benchmark](https://plot.evan.lol/bar/eyJ0aXRsZSI6IlBORyBvcHMvcyAoaGlnaGVyIGlzIGJldHRlcikiLCJwb2ludHMiOlt7Im5hbWUiOiJlbmNvZGUoUkdCQSA2NHg2NCkiLCJzY29yZXMiOlsyNDAuNzEsMTQzNy44Nyw2OTAuOTQsNzY2LjA1XX0seyJuYW1lIjoiZW5jb2RlKFJHQkEgMjU2eDI1NikiLCJzY29yZXMiOlsxMi43OSw1Ni4yOCwzMS41MywxMTIuNDZdfSx7Im5hbWUiOiJlbmNvZGUoUkdCQSA1MTJ4NTEyKSIsInNjb3JlcyI6WzkuOTQsMjUuODMsMTAuMzEsMzQuODZdfSx7Im5hbWUiOiJlbmNvZGUoUkdCQSAxMDI0eDEwMjQpIiwic2NvcmVzIjpbMy4wNCw3LDMuMzcsMTAuMzddfSx7Im5hbWUiOiJlbmNvZGUoUkdCQSAyMDQ4eDIwNDgpIiwic2NvcmVzIjpbMC44LDEuNzYsMC45NywyLjddfV0sImxlZ2VuZCI6W3sibmFtZSI6ImpzKHVwbmcpIiwiY29sb3IiOjg1MTEzODA0N30seyJuYW1lIjoibmF0aXZlKEBpbWFnZXNjcmlwdC9jb2RlY3MpIiwiY29sb3IiOi0xMjUwOTcyNjczfSx7Im5hbWUiOiJqcyhpbWFnZXNjcmlwdCkiLCJjb2xvciI6LTExNTY1MDA0ODF9LHsibmFtZSI6Im5hdGl2ZShzaGFycCkiLCJjb2xvciI6LTE0MTI4NzE2OX1dfQ==.png)
35
+
36
+ ## License
37
+
38
+ MIT © [evan](https://github.com/evanwashere) [matmen](https://github.com/matmen)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1 @@
1
+ throw new Error('todo!');
@@ -0,0 +1 @@
1
+ throw new Error('todo!');
@@ -0,0 +1 @@
1
+ import lib from './index.js';
package/package.json CHANGED
@@ -1,28 +1,41 @@
1
- {
2
- "name": "imagescript",
3
- "version": "1.2.9",
4
- "description": "zero-dependency javascript image manipulation",
5
- "main": "ImageScript.js",
6
- "scripts": {
7
- "test": "node ./tests/run.js",
8
- "coverage": "nyc --reporter=html npm test"
9
- },
10
- "repository": {
11
- "type": "git",
12
- "url": "git+https://github.com/matmen/ImageScript.git"
13
- },
14
- "keywords": [
15
- "image",
16
- "image processing",
17
- "image manipulation"
18
- ],
19
- "author": "matmen <matmen@dreadful.tech>",
20
- "license": "GPL-3.0-or-later",
21
- "bugs": {
22
- "url": "https://github.com/matmen/ImageScript/issues"
23
- },
24
- "homepage": "https://github.com/matmen/ImageScript#readme",
25
- "engines": {
26
- "node": ">=14.0.0"
27
- }
28
- }
1
+ {
2
+ "name": "imagescript",
3
+ "version": "1.2.16",
4
+ "description": "zero-dependency javascript image manipulation",
5
+ "main": "ImageScript.js",
6
+ "types": "ImageScript.d.ts",
7
+ "scripts": {
8
+ "test": "node ./tests/run.js",
9
+ "coverage": "nyc --reporter=html npm test"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/matmen/ImageScript.git"
14
+ },
15
+ "keywords": [
16
+ "image",
17
+ "image processing",
18
+ "image manipulation",
19
+ "png",
20
+ "jpeg",
21
+ "jpg",
22
+ "scale",
23
+ "resize",
24
+ "crop",
25
+ "webp",
26
+ "svg",
27
+ "bitmap",
28
+ "gif",
29
+ "picture",
30
+ "thumbnail"
31
+ ],
32
+ "author": "Mathis Mensing <mathis@matmen.dev>",
33
+ "license": "(AGPL-3.0-or-later OR MIT)",
34
+ "bugs": {
35
+ "url": "https://github.com/matmen/ImageScript/issues"
36
+ },
37
+ "homepage": "https://github.com/matmen/ImageScript#readme",
38
+ "engines": {
39
+ "node": ">=14.0.0"
40
+ }
41
+ }