@flighthq/bitmap 0.3.0-next.1032.e2b99fc → 0.3.0-next.1162.e90e518
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.
- package/dist/bitmap.js +2 -2
- package/dist/bitmap.js.map +1 -1
- package/dist/bitmapChannel.js +2 -2
- package/dist/bitmapChannel.js.map +1 -1
- package/dist/bitmapCrop.js +4 -4
- package/dist/bitmapCrop.js.map +1 -1
- package/dist/bitmapFormat.d.ts +2 -2
- package/dist/bitmapFormat.js +2 -2
- package/dist/bitmapFrom.d.ts +10 -4
- package/dist/bitmapFrom.d.ts.map +1 -1
- package/dist/bitmapFrom.js +31 -8
- package/dist/bitmapFrom.js.map +1 -1
- package/dist/contract.d.ts +1 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +1 -0
- package/dist/contract.js.map +1 -1
- package/dist/explainBitmapReadback.d.ts +3 -0
- package/dist/explainBitmapReadback.d.ts.map +1 -0
- package/dist/explainBitmapReadback.js +39 -0
- package/dist/explainBitmapReadback.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/bitmapFrom.test.ts +32 -3
- package/src/explainBitmapReadback.test.ts +84 -0
package/dist/bitmap.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createEntity } from '@flighthq/entity/contract';
|
|
2
|
-
import {
|
|
2
|
+
import { BitmapTextureSourceKind } from '@flighthq/types/contract';
|
|
3
3
|
export function cloneBitmap(source) {
|
|
4
4
|
return createEntity({
|
|
5
5
|
alphaType: source.alphaType,
|
|
@@ -76,7 +76,7 @@ export function createBitmap(width, height, color = 0) {
|
|
|
76
76
|
data,
|
|
77
77
|
format: 'rgba8unorm',
|
|
78
78
|
height,
|
|
79
|
-
kind:
|
|
79
|
+
kind: BitmapTextureSourceKind,
|
|
80
80
|
version: 0,
|
|
81
81
|
width,
|
|
82
82
|
});
|
package/dist/bitmap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitmap.js","sourceRoot":"","sources":["../src/bitmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"bitmap.js","sourceRoot":"","sources":["../src/bitmap.ts"],"names":[],"mappings":"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"}
|
package/dist/bitmapChannel.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createEntity } from '@flighthq/entity/contract';
|
|
2
|
-
import {
|
|
2
|
+
import { BitmapTextureSourceKind } from '@flighthq/types/contract';
|
|
3
3
|
import { invalidateBitmap } from './bitmap';
|
|
4
4
|
/**
|
|
5
5
|
* Merges four single-channel bitmaps (or any full-RGBA bitmaps) into `out`
|
|
@@ -119,7 +119,7 @@ function makeBitmap(data, width, height, source) {
|
|
|
119
119
|
data,
|
|
120
120
|
format: source.format,
|
|
121
121
|
height,
|
|
122
|
-
kind:
|
|
122
|
+
kind: BitmapTextureSourceKind,
|
|
123
123
|
version: 0,
|
|
124
124
|
width,
|
|
125
125
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitmapChannel.js","sourceRoot":"","sources":["../src/bitmapChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"bitmapChannel.js","sourceRoot":"","sources":["../src/bitmapChannel.ts"],"names":[],"mappings":"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"}
|
package/dist/bitmapCrop.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createEntity } from '@flighthq/entity/contract';
|
|
2
|
-
import {
|
|
2
|
+
import { BitmapTextureSourceKind } from '@flighthq/types/contract';
|
|
3
3
|
/**
|
|
4
4
|
* Allocates a new `Bitmap` containing the pixels of `source` cropped to
|
|
5
5
|
* `rect`. `rect` coordinates are relative to the `source` bitmap origin
|
|
@@ -40,7 +40,7 @@ export function cropBitmap(source, rect) {
|
|
|
40
40
|
data,
|
|
41
41
|
format: source.format,
|
|
42
42
|
height: rh,
|
|
43
|
-
kind:
|
|
43
|
+
kind: BitmapTextureSourceKind,
|
|
44
44
|
version: 0,
|
|
45
45
|
width: rw,
|
|
46
46
|
});
|
|
@@ -106,7 +106,7 @@ export function extendBitmap(source, left, top, right, bottom, edgeMode = 'trans
|
|
|
106
106
|
data,
|
|
107
107
|
format: source.format,
|
|
108
108
|
height: dh,
|
|
109
|
-
kind:
|
|
109
|
+
kind: BitmapTextureSourceKind,
|
|
110
110
|
version: 0,
|
|
111
111
|
width: dw,
|
|
112
112
|
});
|
|
@@ -147,7 +147,7 @@ export function trimBitmap(source) {
|
|
|
147
147
|
data: new Uint8ClampedArray(4),
|
|
148
148
|
format: source.format,
|
|
149
149
|
height: 1,
|
|
150
|
-
kind:
|
|
150
|
+
kind: BitmapTextureSourceKind,
|
|
151
151
|
version: 0,
|
|
152
152
|
width: 1,
|
|
153
153
|
});
|
package/dist/bitmapCrop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitmapCrop.js","sourceRoot":"","sources":["../src/bitmapCrop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"bitmapCrop.js","sourceRoot":"","sources":["../src/bitmapCrop.ts"],"names":[],"mappings":"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"}
|
package/dist/bitmapFormat.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export declare function convertBitmapPixelOrder(out: Uint8ClampedArray, source:
|
|
|
11
11
|
* Safe to pass the same buffer as both `out` and `source`.
|
|
12
12
|
*
|
|
13
13
|
* Operates on a raw buffer, not a Bitmap — if the buffer belongs to an
|
|
14
|
-
*
|
|
14
|
+
* Image, set its `alphaType` to `premultiplied` to keep it truthful.
|
|
15
15
|
*/
|
|
16
16
|
export declare function premultiplyBitmapPixels(out: Uint8ClampedArray, source: Readonly<Uint8ClampedArray>, length: number): void;
|
|
17
17
|
/**
|
|
@@ -20,7 +20,7 @@ export declare function premultiplyBitmapPixels(out: Uint8ClampedArray, source:
|
|
|
20
20
|
* Safe to pass the same buffer as both `out` and `source`.
|
|
21
21
|
*
|
|
22
22
|
* Operates on a raw buffer, not a Bitmap — if the buffer belongs to an
|
|
23
|
-
*
|
|
23
|
+
* Image, set its `alphaType` to `straight` to keep it truthful.
|
|
24
24
|
*/
|
|
25
25
|
export declare function unpremultiplyBitmapPixels(out: Uint8ClampedArray, source: Readonly<Uint8ClampedArray>, length: number): void;
|
|
26
26
|
//# sourceMappingURL=bitmapFormat.d.ts.map
|
package/dist/bitmapFormat.js
CHANGED
|
@@ -28,7 +28,7 @@ export function convertBitmapPixelOrder(out, source, length, from, to) {
|
|
|
28
28
|
* Safe to pass the same buffer as both `out` and `source`.
|
|
29
29
|
*
|
|
30
30
|
* Operates on a raw buffer, not a Bitmap — if the buffer belongs to an
|
|
31
|
-
*
|
|
31
|
+
* Image, set its `alphaType` to `premultiplied` to keep it truthful.
|
|
32
32
|
*/
|
|
33
33
|
export function premultiplyBitmapPixels(out, source, length) {
|
|
34
34
|
for (let i = 0; i < length; i += 4) {
|
|
@@ -45,7 +45,7 @@ export function premultiplyBitmapPixels(out, source, length) {
|
|
|
45
45
|
* Safe to pass the same buffer as both `out` and `source`.
|
|
46
46
|
*
|
|
47
47
|
* Operates on a raw buffer, not a Bitmap — if the buffer belongs to an
|
|
48
|
-
*
|
|
48
|
+
* Image, set its `alphaType` to `straight` to keep it truthful.
|
|
49
49
|
*/
|
|
50
50
|
export function unpremultiplyBitmapPixels(out, source, length) {
|
|
51
51
|
for (let i = 0; i < length; i += 4) {
|
package/dist/bitmapFrom.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Image, Bitmap } from '@flighthq/types/contract';
|
|
2
2
|
/**
|
|
3
|
-
* Reads a host-backed
|
|
3
|
+
* Reads a host-backed Image into a newly allocated, CPU-readable Bitmap. The readback draws
|
|
4
4
|
* through a detached canvas; callers that need both representations should retain both objects.
|
|
5
5
|
*/
|
|
6
|
-
export declare function captureBitmapFromImageResource(resource: Readonly<
|
|
6
|
+
export declare function captureBitmapFromImageResource(resource: Readonly<Image>): Bitmap;
|
|
7
7
|
export declare function createBitmapFromCanvas(canvas: HTMLCanvasElement, x?: number, y?: number, width?: number, height?: number): Bitmap;
|
|
8
8
|
/**
|
|
9
9
|
* Reads a bitmap out of any `CanvasImageSource` by drawing it into a scratch 2D canvas. Unlike
|
|
@@ -12,6 +12,12 @@ export declare function createBitmapFromCanvas(canvas: HTMLCanvasElement, x?: nu
|
|
|
12
12
|
* `width`/`height` are the device-pixel dimensions to capture (pass the render state's canvas size).
|
|
13
13
|
* For a Gl/Wgpu source, draw before the browser composites the frame away (in tests, enable the
|
|
14
14
|
* context's preserveDrawingBuffer, or read immediately after rendering).
|
|
15
|
+
*
|
|
16
|
+
* Returns `null` when the pixels cannot be read rather than letting a platform exception escape. A
|
|
17
|
+
* cross-origin source taints the scratch canvas and the platform refuses to return its pixels — that
|
|
18
|
+
* is an expected outcome of loading someone else's image, not a programmer error, so it takes the
|
|
19
|
+
* sentinel the diagnostics conventions reserve for expected failure. Call `explainBitmapReadback`
|
|
20
|
+
* with the same arguments for the reason; it re-derives it without allocating a bitmap.
|
|
15
21
|
*/
|
|
16
|
-
export declare function createBitmapFromImageSource(source: CanvasImageSource, width: number, height: number): Bitmap;
|
|
22
|
+
export declare function createBitmapFromImageSource(source: CanvasImageSource, width: number, height: number): Bitmap | null;
|
|
17
23
|
//# sourceMappingURL=bitmapFrom.d.ts.map
|
package/dist/bitmapFrom.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitmapFrom.d.ts","sourceRoot":"","sources":["../src/bitmapFrom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"bitmapFrom.d.ts","sourceRoot":"","sources":["../src/bitmapFrom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAG9D;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAiBhF;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,iBAAiB,EACzB,CAAC,GAAE,MAAU,EACb,CAAC,GAAE,MAAU,EACb,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAeR;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8BnH"}
|
package/dist/bitmapFrom.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createEntity } from '@flighthq/entity/contract';
|
|
2
|
-
import {
|
|
2
|
+
import { BitmapTextureSourceKind } from '@flighthq/types/contract';
|
|
3
3
|
/**
|
|
4
|
-
* Reads a host-backed
|
|
4
|
+
* Reads a host-backed Image into a newly allocated, CPU-readable Bitmap. The readback draws
|
|
5
5
|
* through a detached canvas; callers that need both representations should retain both objects.
|
|
6
6
|
*/
|
|
7
7
|
export function captureBitmapFromImageResource(resource) {
|
|
@@ -17,7 +17,7 @@ export function captureBitmapFromImageResource(resource) {
|
|
|
17
17
|
data: raw.data,
|
|
18
18
|
format: 'rgba8unorm',
|
|
19
19
|
height: resource.height,
|
|
20
|
-
kind:
|
|
20
|
+
kind: BitmapTextureSourceKind,
|
|
21
21
|
version: 0,
|
|
22
22
|
width: resource.width,
|
|
23
23
|
});
|
|
@@ -33,7 +33,7 @@ export function createBitmapFromCanvas(canvas, x = 0, y = 0, width, height) {
|
|
|
33
33
|
data: raw.data,
|
|
34
34
|
format: 'rgba8unorm',
|
|
35
35
|
height: raw.height,
|
|
36
|
-
kind:
|
|
36
|
+
kind: BitmapTextureSourceKind,
|
|
37
37
|
version: 0,
|
|
38
38
|
width: raw.width,
|
|
39
39
|
});
|
|
@@ -45,23 +45,46 @@ export function createBitmapFromCanvas(canvas, x = 0, y = 0, width, height) {
|
|
|
45
45
|
* `width`/`height` are the device-pixel dimensions to capture (pass the render state's canvas size).
|
|
46
46
|
* For a Gl/Wgpu source, draw before the browser composites the frame away (in tests, enable the
|
|
47
47
|
* context's preserveDrawingBuffer, or read immediately after rendering).
|
|
48
|
+
*
|
|
49
|
+
* Returns `null` when the pixels cannot be read rather than letting a platform exception escape. A
|
|
50
|
+
* cross-origin source taints the scratch canvas and the platform refuses to return its pixels — that
|
|
51
|
+
* is an expected outcome of loading someone else's image, not a programmer error, so it takes the
|
|
52
|
+
* sentinel the diagnostics conventions reserve for expected failure. Call `explainBitmapReadback`
|
|
53
|
+
* with the same arguments for the reason; it re-derives it without allocating a bitmap.
|
|
48
54
|
*/
|
|
49
55
|
export function createBitmapFromImageSource(source, width, height) {
|
|
56
|
+
if (width <= 0 || height <= 0)
|
|
57
|
+
return null;
|
|
58
|
+
if (typeof document === 'undefined')
|
|
59
|
+
return null;
|
|
50
60
|
const canvas = document.createElement('canvas');
|
|
51
61
|
canvas.width = width;
|
|
52
62
|
canvas.height = height;
|
|
53
63
|
const ctx = canvas.getContext('2d');
|
|
54
|
-
ctx
|
|
55
|
-
|
|
56
|
-
|
|
64
|
+
if (ctx === null)
|
|
65
|
+
return null;
|
|
66
|
+
let raw;
|
|
67
|
+
try {
|
|
68
|
+
ctx.drawImage(source, 0, 0);
|
|
69
|
+
raw = ctx.getImageData(0, 0, width, height);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// A tainted canvas throws SecurityError from getImageData; a source the platform cannot draw
|
|
73
|
+
// throws from drawImage. Both mean "no pixels for you", which is the sentinel's job to say.
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
// Annotated rather than returned inline: with a `Bitmap | null` return the object literal loses the
|
|
77
|
+
// contextual typing that narrows its string fields to Bitmap's literal types.
|
|
78
|
+
const bitmap = createEntity({
|
|
57
79
|
alphaType: 'straight',
|
|
58
80
|
colorSpace: raw.colorSpace,
|
|
59
81
|
data: raw.data,
|
|
60
82
|
format: 'rgba8unorm',
|
|
61
83
|
height,
|
|
62
|
-
kind:
|
|
84
|
+
kind: BitmapTextureSourceKind,
|
|
63
85
|
version: 0,
|
|
64
86
|
width,
|
|
65
87
|
});
|
|
88
|
+
return bitmap;
|
|
66
89
|
}
|
|
67
90
|
//# sourceMappingURL=bitmapFrom.js.map
|
package/dist/bitmapFrom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitmapFrom.js","sourceRoot":"","sources":["../src/bitmapFrom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"bitmapFrom.js","sourceRoot":"","sources":["../src/bitmapFrom.ts"],"names":[],"mappings":"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"}
|
package/dist/contract.d.ts
CHANGED
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC"}
|
package/dist/contract.js
CHANGED
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explainBitmapReadback.d.ts","sourceRoot":"","sources":["../src/explainBitmapReadback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6B,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAerG,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,yBAAyB,CAG3B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// Recomputes why createBitmapFromImageSource would or would not return a Bitmap for these arguments,
|
|
2
|
+
// as plain data. Pure: it allocates a scratch canvas and reads one pixel to settle taint, mutates
|
|
3
|
+
// nothing the caller owns, never throws, and retains no reference to `source`. Import it to find out
|
|
4
|
+
// why a capture came back null; it sheds from production when unimported.
|
|
5
|
+
//
|
|
6
|
+
// Reasons are root-cause prioritized rather than following the constructor's literal check order: an
|
|
7
|
+
// empty capture and a missing DOM are properties of the call and the host, knowable without touching
|
|
8
|
+
// the source at all, so they are reported before anything is drawn. `tainted-source` is last because
|
|
9
|
+
// it is the only one that requires actually attempting the read.
|
|
10
|
+
//
|
|
11
|
+
// This is the pull half of the diagnostics convention, and it duplicates the constructor's failure
|
|
12
|
+
// conditions by design — the maintenance seam is that a new way for the readback to fail must gain a
|
|
13
|
+
// matching branch here or this query silently goes stale.
|
|
14
|
+
export function explainBitmapReadback(source, width, height) {
|
|
15
|
+
const reason = _blockReason(source, width, height);
|
|
16
|
+
return { readable: reason === 'ok', reason };
|
|
17
|
+
}
|
|
18
|
+
function _blockReason(source, width, height) {
|
|
19
|
+
if (width <= 0 || height <= 0)
|
|
20
|
+
return 'empty-size';
|
|
21
|
+
if (typeof document === 'undefined')
|
|
22
|
+
return 'no-canvas';
|
|
23
|
+
const canvas = document.createElement('canvas');
|
|
24
|
+
canvas.width = 1;
|
|
25
|
+
canvas.height = 1;
|
|
26
|
+
const ctx = canvas.getContext('2d');
|
|
27
|
+
if (ctx === null)
|
|
28
|
+
return 'no-canvas';
|
|
29
|
+
try {
|
|
30
|
+
// One pixel is enough: taint is a property of the canvas after the draw, not of how much was read.
|
|
31
|
+
ctx.drawImage(source, 0, 0);
|
|
32
|
+
ctx.getImageData(0, 0, 1, 1);
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return 'tainted-source';
|
|
36
|
+
}
|
|
37
|
+
return 'ok';
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=explainBitmapReadback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explainBitmapReadback.js","sourceRoot":"","sources":["../src/explainBitmapReadback.ts"],"names":[],"mappings":"AAEA,qGAAqG;AACrG,kGAAkG;AAClG,qGAAqG;AACrG,0EAA0E;AAC1E,EAAE;AACF,qGAAqG;AACrG,qGAAqG;AACrG,qGAAqG;AACrG,iEAAiE;AACjE,EAAE;AACF,mGAAmG;AACnG,qGAAqG;AACrG,0DAA0D;AAC1D,MAAM,UAAU,qBAAqB,CACnC,MAAyB,EACzB,KAAa,EACb,MAAc;IAEd,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,YAAY,CAAC,MAAyB,EAAE,KAAa,EAAE,MAAc;IAC5E,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,YAAY,CAAC;IACnD,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,WAAW,CAAC;IACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,WAAW,CAAC;IACrC,IAAI,CAAC;QACH,mGAAmG;QACnG,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ImageChannel, BITMAP_NOISE_CHANNEL_A, BITMAP_NOISE_CHANNEL_B, BITMAP_NOISE_CHANNEL_G, BITMAP_NOISE_CHANNEL_R, applyBitmapColorScaleBias, applyBitmapCurve, applyBitmapLevels, applyBitmapPaletteMap, applyBitmapThreshold, bevelBitmap, blurBitmapPixelsHorizontal, blurBitmapPixelsHorizontalWeighted, blurBitmapPixelsVertical, blurBitmapPixelsVerticalWeighted, boxBlurBitmap, buildBitmapBrightnessColorMatrix, buildBitmapContrastColorMatrix, buildBitmapGradientRamp, buildBitmapGrayscaleColorMatrix, buildBitmapHueRotationColorMatrix, buildBitmapInvertColorMatrix, buildBitmapSaturationColorMatrix, buildBitmapSepiaColorMatrix, cloneBitmap, colorMatrixBitmap, compareBitmap, compareBitmapFingerprints, compositeBitmapPixels, compositeBitmapRegion, computeGaussianKernel, concatBitmapColorMatrix, convertBitmapAlphaType, convertBitmapPixelOrder, convolveBitmap, copyBitmapAlpha, copyBitmapChannel, copyBitmapPixels, createBitmap, createBitmapFingerprint, createBitmapFromCanvas, captureBitmapFromImageResource, createBitmapFromImageSource, createBitmapRegion, cropBitmap, dilateBitmap, displaceBitmap, dissolveBitmapPixels, drawBitmap, dropShadowBitmap, encodeBitmap, equalizeBitmapHistogram, erodeBitmap, extendBitmap, extractBitmapPixels, extractBitmapPixels32, fillBitmapLinearGradient, fillBitmapNoise, fillBitmapPerlinNoise, fillBitmapRadialGradient, fillBitmapRectangle, fillBitmapTurbulence, flipBitmapHorizontal, flipBitmapVertical, floodFillBitmap, formatBitmapFingerprint, gaussianBlurBitmap, getBitmapColorBoundsRectangle, getBitmapCoverage, getBitmapHistogram, getBitmapMismatch, getBitmapPixel, getBitmapPixelChannel, getBitmapPixelLuminance, getBitmapPixelRgb, glowBitmap, gradientBevelBitmap, gradientGlowBitmap, innerGlowBitmap, innerShadowBitmap, invalidateBitmap, medianBitmap, mergeBitmap, mergeBitmapChannels, multiplyBitmapAlpha, parseBitmapFingerprint, pixelateBitmap, premultiplyBitmapPixels, resizeBitmap, rotateBitmap, rotateBitmap180, rotateBitmapClockwise, rotateBitmapCounterClockwise, scrollBitmap, setBitmapAlpha, setBitmapColorMatrixIdentity, setBitmapPixel, setBitmapPixelRgb, setBitmapRegion, sharpenBitmap, splitBitmapChannels, transformBitmap, trimBitmap, unpremultiplyBitmapPixels, warpBitmap, warpBitmapQuad, writeBitmapPixels, writeBitmapPixels32, } from './contract';
|
|
1
|
+
export { ImageChannel, BITMAP_NOISE_CHANNEL_A, BITMAP_NOISE_CHANNEL_B, BITMAP_NOISE_CHANNEL_G, BITMAP_NOISE_CHANNEL_R, applyBitmapColorScaleBias, applyBitmapCurve, applyBitmapLevels, applyBitmapPaletteMap, applyBitmapThreshold, bevelBitmap, blurBitmapPixelsHorizontal, blurBitmapPixelsHorizontalWeighted, blurBitmapPixelsVertical, blurBitmapPixelsVerticalWeighted, boxBlurBitmap, buildBitmapBrightnessColorMatrix, buildBitmapContrastColorMatrix, buildBitmapGradientRamp, buildBitmapGrayscaleColorMatrix, buildBitmapHueRotationColorMatrix, buildBitmapInvertColorMatrix, buildBitmapSaturationColorMatrix, buildBitmapSepiaColorMatrix, cloneBitmap, colorMatrixBitmap, compareBitmap, compareBitmapFingerprints, compositeBitmapPixels, compositeBitmapRegion, computeGaussianKernel, concatBitmapColorMatrix, convertBitmapAlphaType, convertBitmapPixelOrder, convolveBitmap, copyBitmapAlpha, copyBitmapChannel, copyBitmapPixels, createBitmap, createBitmapFingerprint, createBitmapFromCanvas, captureBitmapFromImageResource, createBitmapFromImageSource, explainBitmapReadback, createBitmapRegion, cropBitmap, dilateBitmap, displaceBitmap, dissolveBitmapPixels, drawBitmap, dropShadowBitmap, encodeBitmap, equalizeBitmapHistogram, erodeBitmap, extendBitmap, extractBitmapPixels, extractBitmapPixels32, fillBitmapLinearGradient, fillBitmapNoise, fillBitmapPerlinNoise, fillBitmapRadialGradient, fillBitmapRectangle, fillBitmapTurbulence, flipBitmapHorizontal, flipBitmapVertical, floodFillBitmap, formatBitmapFingerprint, gaussianBlurBitmap, getBitmapColorBoundsRectangle, getBitmapCoverage, getBitmapHistogram, getBitmapMismatch, getBitmapPixel, getBitmapPixelChannel, getBitmapPixelLuminance, getBitmapPixelRgb, glowBitmap, gradientBevelBitmap, gradientGlowBitmap, innerGlowBitmap, innerShadowBitmap, invalidateBitmap, medianBitmap, mergeBitmap, mergeBitmapChannels, multiplyBitmapAlpha, parseBitmapFingerprint, pixelateBitmap, premultiplyBitmapPixels, resizeBitmap, rotateBitmap, rotateBitmap180, rotateBitmapClockwise, rotateBitmapCounterClockwise, scrollBitmap, setBitmapAlpha, setBitmapColorMatrixIdentity, setBitmapPixel, setBitmapPixelRgb, setBitmapRegion, sharpenBitmap, splitBitmapChannels, transformBitmap, trimBitmap, unpremultiplyBitmapPixels, warpBitmap, warpBitmapQuad, writeBitmapPixels, writeBitmapPixels32, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,0BAA0B,EAC1B,kCAAkC,EAClC,wBAAwB,EACxB,gCAAgC,EAChC,aAAa,EACb,gCAAgC,EAChC,8BAA8B,EAC9B,uBAAuB,EACvB,+BAA+B,EAC/B,iCAAiC,EACjC,4BAA4B,EAC5B,gCAAgC,EAChC,2BAA2B,EAC3B,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,uBAAuB,EACvB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,4BAA4B,EAC5B,YAAY,EACZ,cAAc,EACd,4BAA4B,EAC5B,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,yBAAyB,EACzB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,0BAA0B,EAC1B,kCAAkC,EAClC,wBAAwB,EACxB,gCAAgC,EAChC,aAAa,EACb,gCAAgC,EAChC,8BAA8B,EAC9B,uBAAuB,EACvB,+BAA+B,EAC/B,iCAAiC,EACjC,4BAA4B,EAC5B,gCAAgC,EAChC,2BAA2B,EAC3B,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,uBAAuB,EACvB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,4BAA4B,EAC5B,YAAY,EACZ,cAAc,EACd,4BAA4B,EAC5B,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,yBAAyB,EACzB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ImageChannel, BITMAP_NOISE_CHANNEL_A, BITMAP_NOISE_CHANNEL_B, BITMAP_NOISE_CHANNEL_G, BITMAP_NOISE_CHANNEL_R, applyBitmapColorScaleBias, applyBitmapCurve, applyBitmapLevels, applyBitmapPaletteMap, applyBitmapThreshold, bevelBitmap, blurBitmapPixelsHorizontal, blurBitmapPixelsHorizontalWeighted, blurBitmapPixelsVertical, blurBitmapPixelsVerticalWeighted, boxBlurBitmap, buildBitmapBrightnessColorMatrix, buildBitmapContrastColorMatrix, buildBitmapGradientRamp, buildBitmapGrayscaleColorMatrix, buildBitmapHueRotationColorMatrix, buildBitmapInvertColorMatrix, buildBitmapSaturationColorMatrix, buildBitmapSepiaColorMatrix, cloneBitmap, colorMatrixBitmap, compareBitmap, compareBitmapFingerprints, compositeBitmapPixels, compositeBitmapRegion, computeGaussianKernel, concatBitmapColorMatrix, convertBitmapAlphaType, convertBitmapPixelOrder, convolveBitmap, copyBitmapAlpha, copyBitmapChannel, copyBitmapPixels, createBitmap, createBitmapFingerprint, createBitmapFromCanvas, captureBitmapFromImageResource, createBitmapFromImageSource, createBitmapRegion, cropBitmap, dilateBitmap, displaceBitmap, dissolveBitmapPixels, drawBitmap, dropShadowBitmap, encodeBitmap, equalizeBitmapHistogram, erodeBitmap, extendBitmap, extractBitmapPixels, extractBitmapPixels32, fillBitmapLinearGradient, fillBitmapNoise, fillBitmapPerlinNoise, fillBitmapRadialGradient, fillBitmapRectangle, fillBitmapTurbulence, flipBitmapHorizontal, flipBitmapVertical, floodFillBitmap, formatBitmapFingerprint, gaussianBlurBitmap, getBitmapColorBoundsRectangle, getBitmapCoverage, getBitmapHistogram, getBitmapMismatch, getBitmapPixel, getBitmapPixelChannel, getBitmapPixelLuminance, getBitmapPixelRgb, glowBitmap, gradientBevelBitmap, gradientGlowBitmap, innerGlowBitmap, innerShadowBitmap, invalidateBitmap, medianBitmap, mergeBitmap, mergeBitmapChannels, multiplyBitmapAlpha, parseBitmapFingerprint, pixelateBitmap, premultiplyBitmapPixels, resizeBitmap, rotateBitmap, rotateBitmap180, rotateBitmapClockwise, rotateBitmapCounterClockwise, scrollBitmap, setBitmapAlpha, setBitmapColorMatrixIdentity, setBitmapPixel, setBitmapPixelRgb, setBitmapRegion, sharpenBitmap, splitBitmapChannels, transformBitmap, trimBitmap, unpremultiplyBitmapPixels, warpBitmap, warpBitmapQuad, writeBitmapPixels, writeBitmapPixels32, } from './contract';
|
|
1
|
+
export { ImageChannel, BITMAP_NOISE_CHANNEL_A, BITMAP_NOISE_CHANNEL_B, BITMAP_NOISE_CHANNEL_G, BITMAP_NOISE_CHANNEL_R, applyBitmapColorScaleBias, applyBitmapCurve, applyBitmapLevels, applyBitmapPaletteMap, applyBitmapThreshold, bevelBitmap, blurBitmapPixelsHorizontal, blurBitmapPixelsHorizontalWeighted, blurBitmapPixelsVertical, blurBitmapPixelsVerticalWeighted, boxBlurBitmap, buildBitmapBrightnessColorMatrix, buildBitmapContrastColorMatrix, buildBitmapGradientRamp, buildBitmapGrayscaleColorMatrix, buildBitmapHueRotationColorMatrix, buildBitmapInvertColorMatrix, buildBitmapSaturationColorMatrix, buildBitmapSepiaColorMatrix, cloneBitmap, colorMatrixBitmap, compareBitmap, compareBitmapFingerprints, compositeBitmapPixels, compositeBitmapRegion, computeGaussianKernel, concatBitmapColorMatrix, convertBitmapAlphaType, convertBitmapPixelOrder, convolveBitmap, copyBitmapAlpha, copyBitmapChannel, copyBitmapPixels, createBitmap, createBitmapFingerprint, createBitmapFromCanvas, captureBitmapFromImageResource, createBitmapFromImageSource, explainBitmapReadback, createBitmapRegion, cropBitmap, dilateBitmap, displaceBitmap, dissolveBitmapPixels, drawBitmap, dropShadowBitmap, encodeBitmap, equalizeBitmapHistogram, erodeBitmap, extendBitmap, extractBitmapPixels, extractBitmapPixels32, fillBitmapLinearGradient, fillBitmapNoise, fillBitmapPerlinNoise, fillBitmapRadialGradient, fillBitmapRectangle, fillBitmapTurbulence, flipBitmapHorizontal, flipBitmapVertical, floodFillBitmap, formatBitmapFingerprint, gaussianBlurBitmap, getBitmapColorBoundsRectangle, getBitmapCoverage, getBitmapHistogram, getBitmapMismatch, getBitmapPixel, getBitmapPixelChannel, getBitmapPixelLuminance, getBitmapPixelRgb, glowBitmap, gradientBevelBitmap, gradientGlowBitmap, innerGlowBitmap, innerShadowBitmap, invalidateBitmap, medianBitmap, mergeBitmap, mergeBitmapChannels, multiplyBitmapAlpha, parseBitmapFingerprint, pixelateBitmap, premultiplyBitmapPixels, resizeBitmap, rotateBitmap, rotateBitmap180, rotateBitmapClockwise, rotateBitmapCounterClockwise, scrollBitmap, setBitmapAlpha, setBitmapColorMatrixIdentity, setBitmapPixel, setBitmapPixelRgb, setBitmapRegion, sharpenBitmap, splitBitmapChannels, transformBitmap, trimBitmap, unpremultiplyBitmapPixels, warpBitmap, warpBitmapQuad, writeBitmapPixels, writeBitmapPixels32, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,0BAA0B,EAC1B,kCAAkC,EAClC,wBAAwB,EACxB,gCAAgC,EAChC,aAAa,EACb,gCAAgC,EAChC,8BAA8B,EAC9B,uBAAuB,EACvB,+BAA+B,EAC/B,iCAAiC,EACjC,4BAA4B,EAC5B,gCAAgC,EAChC,2BAA2B,EAC3B,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,uBAAuB,EACvB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,4BAA4B,EAC5B,YAAY,EACZ,cAAc,EACd,4BAA4B,EAC5B,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,yBAAyB,EACzB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,0BAA0B,EAC1B,kCAAkC,EAClC,wBAAwB,EACxB,gCAAgC,EAChC,aAAa,EACb,gCAAgC,EAChC,8BAA8B,EAC9B,uBAAuB,EACvB,+BAA+B,EAC/B,iCAAiC,EACjC,4BAA4B,EAC5B,gCAAgC,EAChC,2BAA2B,EAC3B,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,uBAAuB,EACvB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,4BAA4B,EAC5B,YAAY,EACZ,cAAc,EACd,4BAA4B,EAC5B,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,yBAAyB,EACzB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/bitmap",
|
|
3
|
-
"version": "0.3.0-next.
|
|
3
|
+
"version": "0.3.0-next.1162.e90e518",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/flighthq/flight.git",
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@flighthq/image": "0.3.0-next.
|
|
40
|
-
"@flighthq/entity": "0.3.0-next.
|
|
41
|
-
"@flighthq/types": "0.3.0-next.
|
|
39
|
+
"@flighthq/image": "0.3.0-next.1162.e90e518",
|
|
40
|
+
"@flighthq/entity": "0.3.0-next.1162.e90e518",
|
|
41
|
+
"@flighthq/types": "0.3.0-next.1162.e90e518"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"typescript": "^5.3.0"
|
package/src/bitmapFrom.test.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createImageResource } from '@flighthq/image/contract';
|
|
2
|
+
import { vi } from 'vitest';
|
|
2
3
|
|
|
3
4
|
import { createBitmap } from './bitmap';
|
|
4
5
|
import { createBitmapFromCanvas, captureBitmapFromImageResource, createBitmapFromImageSource } from './bitmapFrom';
|
|
@@ -50,8 +51,36 @@ describe('createBitmapFromImageSource', () => {
|
|
|
50
51
|
canvas.width = 8;
|
|
51
52
|
canvas.height = 4;
|
|
52
53
|
const bitmap = createBitmapFromImageSource(canvas, 8, 4);
|
|
53
|
-
expect(bitmap
|
|
54
|
-
expect(bitmap
|
|
55
|
-
expect(bitmap
|
|
54
|
+
expect(bitmap).not.toBeNull();
|
|
55
|
+
expect(bitmap!.width).toBe(8);
|
|
56
|
+
expect(bitmap!.height).toBe(4);
|
|
57
|
+
expect(bitmap!.data.length).toBe(8 * 4 * 4);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it('returns null rather than letting a tainted source throw', () => {
|
|
61
|
+
// A cross-origin draw taints the scratch canvas and the platform refuses its pixels with a
|
|
62
|
+
// SecurityError from getImageData. jsdom does not model tainting, so the throw is staged on
|
|
63
|
+
// getImageData directly — which is the exact call and the exact exception the sentinel exists to
|
|
64
|
+
// stop escaping to a caller who only asked for a bitmap.
|
|
65
|
+
const canvas = document.createElement('canvas');
|
|
66
|
+
canvas.width = 8;
|
|
67
|
+
canvas.height = 4;
|
|
68
|
+
const spy = vi.spyOn(CanvasRenderingContext2D.prototype, 'getImageData').mockImplementation(() => {
|
|
69
|
+
throw new DOMException('Tainted canvases may not be exported.', 'SecurityError');
|
|
70
|
+
});
|
|
71
|
+
try {
|
|
72
|
+
expect(() => createBitmapFromImageSource(canvas, 8, 4)).not.toThrow();
|
|
73
|
+
expect(createBitmapFromImageSource(canvas, 8, 4)).toBeNull();
|
|
74
|
+
} finally {
|
|
75
|
+
spy.mockRestore();
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it('returns null for an empty capture rather than allocating a zero-pixel bitmap', () => {
|
|
80
|
+
const canvas = document.createElement('canvas');
|
|
81
|
+
canvas.width = 8;
|
|
82
|
+
canvas.height = 4;
|
|
83
|
+
expect(createBitmapFromImageSource(canvas, 0, 4)).toBeNull();
|
|
84
|
+
expect(createBitmapFromImageSource(canvas, 8, -1)).toBeNull();
|
|
56
85
|
});
|
|
57
86
|
});
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
+
|
|
3
|
+
import { createBitmapFromImageSource } from './bitmapFrom';
|
|
4
|
+
import { explainBitmapReadback } from './explainBitmapReadback';
|
|
5
|
+
|
|
6
|
+
function makeCanvas(width = 8, height = 4): HTMLCanvasElement {
|
|
7
|
+
const canvas = document.createElement('canvas');
|
|
8
|
+
canvas.width = width;
|
|
9
|
+
canvas.height = height;
|
|
10
|
+
return canvas;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
describe('explainBitmapReadback', () => {
|
|
14
|
+
it('reports a readable source as ok', () => {
|
|
15
|
+
expect(explainBitmapReadback(makeCanvas(), 8, 4)).toEqual({ readable: true, reason: 'ok' });
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('reports an empty capture without touching the source', () => {
|
|
19
|
+
expect(explainBitmapReadback(makeCanvas(), 0, 4)).toEqual({ readable: false, reason: 'empty-size' });
|
|
20
|
+
expect(explainBitmapReadback(makeCanvas(), 8, 0)).toEqual({ readable: false, reason: 'empty-size' });
|
|
21
|
+
expect(explainBitmapReadback(makeCanvas(), -1, 4)).toEqual({ readable: false, reason: 'empty-size' });
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it('reports a tainted source', () => {
|
|
25
|
+
const spy = vi.spyOn(CanvasRenderingContext2D.prototype, 'getImageData').mockImplementation(() => {
|
|
26
|
+
throw new DOMException('Tainted canvases may not be exported.', 'SecurityError');
|
|
27
|
+
});
|
|
28
|
+
try {
|
|
29
|
+
expect(explainBitmapReadback(makeCanvas(), 8, 4)).toEqual({ readable: false, reason: 'tainted-source' });
|
|
30
|
+
} finally {
|
|
31
|
+
spy.mockRestore();
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('prefers the reason knowable without drawing — an empty capture outranks a tainted source', () => {
|
|
36
|
+
const spy = vi.spyOn(CanvasRenderingContext2D.prototype, 'getImageData').mockImplementation(() => {
|
|
37
|
+
throw new DOMException('Tainted canvases may not be exported.', 'SecurityError');
|
|
38
|
+
});
|
|
39
|
+
try {
|
|
40
|
+
expect(explainBitmapReadback(makeCanvas(), 0, 4).reason).toBe('empty-size');
|
|
41
|
+
} finally {
|
|
42
|
+
spy.mockRestore();
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it('agrees with what createBitmapFromImageSource actually does', () => {
|
|
47
|
+
// The pull query duplicates the constructor's failure conditions by design, so the pairing is the
|
|
48
|
+
// thing worth pinning: readable exactly when a bitmap comes back.
|
|
49
|
+
const canvas = makeCanvas();
|
|
50
|
+
expect(explainBitmapReadback(canvas, 8, 4).readable).toBe(createBitmapFromImageSource(canvas, 8, 4) !== null);
|
|
51
|
+
expect(explainBitmapReadback(canvas, 0, 4).readable).toBe(createBitmapFromImageSource(canvas, 0, 4) !== null);
|
|
52
|
+
|
|
53
|
+
const spy = vi.spyOn(CanvasRenderingContext2D.prototype, 'getImageData').mockImplementation(() => {
|
|
54
|
+
throw new DOMException('Tainted canvases may not be exported.', 'SecurityError');
|
|
55
|
+
});
|
|
56
|
+
try {
|
|
57
|
+
expect(explainBitmapReadback(canvas, 8, 4).readable).toBe(createBitmapFromImageSource(canvas, 8, 4) !== null);
|
|
58
|
+
} finally {
|
|
59
|
+
spy.mockRestore();
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it('never throws, whatever the source does', () => {
|
|
64
|
+
const spy = vi.spyOn(CanvasRenderingContext2D.prototype, 'drawImage').mockImplementation(() => {
|
|
65
|
+
throw new TypeError('unsupported source');
|
|
66
|
+
});
|
|
67
|
+
try {
|
|
68
|
+
expect(() => explainBitmapReadback(makeCanvas(), 8, 4)).not.toThrow();
|
|
69
|
+
expect(explainBitmapReadback(makeCanvas(), 8, 4).readable).toBe(false);
|
|
70
|
+
} finally {
|
|
71
|
+
spy.mockRestore();
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
it('allocates no bitmap — it reads one pixel, not the whole capture', () => {
|
|
76
|
+
const spy = vi.spyOn(CanvasRenderingContext2D.prototype, 'getImageData');
|
|
77
|
+
try {
|
|
78
|
+
explainBitmapReadback(makeCanvas(1024, 1024), 1024, 1024);
|
|
79
|
+
expect(spy).toHaveBeenCalledWith(0, 0, 1, 1);
|
|
80
|
+
} finally {
|
|
81
|
+
spy.mockRestore();
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
});
|