@radialapps/memories-vips-editor 0.1.2 → 0.1.5
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/README.md +23 -15
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/math.d.ts +25 -0
- package/dist/math.d.ts.map +1 -1
- package/dist/math.js +38 -4
- package/dist/math.js.map +1 -1
- package/dist/pipeline.d.ts +9 -0
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +35 -23
- package/dist/pipeline.js.map +1 -1
- package/dist/shaders.d.ts +2 -3
- package/dist/shaders.d.ts.map +1 -1
- package/dist/shaders.js +9 -12
- package/dist/shaders.js.map +1 -1
- package/dist/smallPreview.d.ts +31 -0
- package/dist/smallPreview.d.ts.map +1 -0
- package/dist/smallPreview.js +118 -0
- package/dist/smallPreview.js.map +1 -0
- package/dist/transforms/crop.d.ts.map +1 -1
- package/dist/transforms/crop.js +7 -21
- package/dist/transforms/crop.js.map +1 -1
- package/dist/transforms/highlights.d.ts +17 -0
- package/dist/transforms/highlights.d.ts.map +1 -0
- package/dist/transforms/highlights.js +49 -0
- package/dist/transforms/highlights.js.map +1 -0
- package/dist/transforms/index.d.ts.map +1 -1
- package/dist/transforms/index.js +8 -2
- package/dist/transforms/index.js.map +1 -1
- package/dist/transforms/sepia.d.ts.map +1 -1
- package/dist/transforms/sepia.js +5 -4
- package/dist/transforms/sepia.js.map +1 -1
- package/dist/transforms/shadows.d.ts +17 -0
- package/dist/transforms/shadows.d.ts.map +1 -0
- package/dist/transforms/shadows.js +49 -0
- package/dist/transforms/shadows.js.map +1 -0
- package/dist/transforms/sharpen.js +1 -1
- package/dist/transforms/state.d.ts +1 -1
- package/dist/transforms/state.d.ts.map +1 -1
- package/dist/transforms/state.js +9 -9
- package/dist/transforms/state.js.map +1 -1
- package/dist/transforms/transform.d.ts +2 -2
- package/dist/transforms/transform.d.ts.map +1 -1
- package/dist/transforms/transform.js +4 -1
- package/dist/transforms/transform.js.map +1 -1
- package/dist/transforms/warmth.d.ts +17 -0
- package/dist/transforms/warmth.d.ts.map +1 -0
- package/dist/transforms/warmth.js +46 -0
- package/dist/transforms/warmth.js.map +1 -0
- package/dist/types.d.ts +5 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +4 -3
- package/src/math.ts +43 -4
- package/src/pipeline.ts +46 -22
- package/src/shaders.ts +9 -13
- package/src/smallPreview.ts +120 -0
- package/src/transforms/crop.ts +8 -17
- package/src/transforms/highlights.ts +67 -0
- package/src/transforms/index.ts +10 -4
- package/src/transforms/sepia.ts +5 -4
- package/src/transforms/shadows.ts +67 -0
- package/src/transforms/sharpen.ts +1 -1
- package/src/transforms/state.ts +7 -10
- package/src/transforms/transform.ts +8 -5
- package/src/transforms/warmth.ts +64 -0
- package/src/types.ts +9 -0
package/README.md
CHANGED
|
@@ -15,6 +15,9 @@ editor/
|
|
|
15
15
|
math.ts shared pixel-math helpers
|
|
16
16
|
shaders.ts shared GLSL (quad, copy, blit, gaussian)
|
|
17
17
|
pipeline.ts EditPipeline — headless, canvas-taking preview
|
|
18
|
+
smallPreview.ts SmallPreview — cheap downscaled (≤512px) snapshots
|
|
19
|
+
for an edit list on a hidden canvas; base upload +
|
|
20
|
+
compiled programs reused across render() calls
|
|
18
21
|
transforms/ one Transform class per edit + registry (index.ts)
|
|
19
22
|
+ state serialization (state.ts); mirrors src/transforms/*.h
|
|
20
23
|
index.ts public surface (per-transform types import from their file)
|
|
@@ -73,25 +76,30 @@ off, normalized to 0..1 float alongside, reattached. Everything agrees to
|
|
|
73
76
|
float precision (±1 LSB after quantize), including `blur`/`sharpen` (both
|
|
74
77
|
sides convolve the same discrete kernel — `sigma=radius/2`,
|
|
75
78
|
`half=min(15,max(1,ceil(2σ)))`, clamp edges — via two separable passes).
|
|
79
|
+
Edits address the upright image: EXIF orientation is baked in first (the
|
|
80
|
+
browser applies it too, so crop fractions mean what the canvas showed).
|
|
76
81
|
Thumbnail edits run **after** resize (radii are output pixels). The preview
|
|
77
82
|
downscales sources larger than 2048px and scales `blur`/`sharpen` radii by
|
|
78
|
-
the working/native ratio, so it shows the same
|
|
79
|
-
full-res VIPS output
|
|
80
|
-
|
|
81
|
-
|
|
83
|
+
the working/native ratio, so it shows the same _relative_ blur as the
|
|
84
|
+
full-res VIPS output (up to the 31-tap cap, which is in working pixels on each
|
|
85
|
+
side: past a native radius of ~15 the preview blurs more than VIPS). UHDR
|
|
86
|
+
ICC+gainmap survive: pixel edits leave the gainmap as is (it is not
|
|
87
|
+
re-derived), `crop`/`rotate` apply to it too. `rotate` by a non-90 angle appends a transparent alpha band (corners + fringes); 90°
|
|
82
88
|
multiples stay exact with no band change.
|
|
83
89
|
|
|
84
|
-
| edit
|
|
85
|
-
|
|
|
86
|
-
| `brightnessContrast`
|
|
87
|
-
| `exposure`
|
|
88
|
-
| `hueSaturation`
|
|
89
|
-
| `sepia`
|
|
90
|
-
| `vibrance` / `vignette`
|
|
91
|
-
| `
|
|
92
|
-
| `
|
|
93
|
-
| `
|
|
94
|
-
| `
|
|
90
|
+
| edit | params | VIPS |
|
|
91
|
+
| ------------------------ | ------------------------------------------ | -------------------------------- |
|
|
92
|
+
| `brightnessContrast` | `brightness`, `contrast` −1..1 | `linear(mult, bias)` |
|
|
93
|
+
| `exposure` | `stops` −5..5 | `linear(2^stops)` |
|
|
94
|
+
| `hueSaturation` | `hue`, `saturation` −1..1 | fused 3×3 (≡ `recomb`) |
|
|
95
|
+
| `sepia` | `amount` 0..1 | same matrix, clipped at cast |
|
|
96
|
+
| `vibrance` / `vignette` | `amount` −1..1 / `size`, `amount` 0..1 | identical CPU loop |
|
|
97
|
+
| `shadows` / `highlights` | `amount` −1..1 (dark/bright-weighted lift) | identical CPU loop |
|
|
98
|
+
| `warmth` | `amount` −1..1 (cool..warm R/B gains) | `linear(1±0.3·a)` |
|
|
99
|
+
| `grayscale` / `invert` | — | `(r+g+b)/3` / `linear(-1, +1)` |
|
|
100
|
+
| `blur` / `sharpen` | `radius` 0..100 / +`amount` 0..5 | shared kernel + `convsep` (mix) |
|
|
101
|
+
| `crop` | `x`,`y`,`width`,`height` 0..1 fractions | `extract_area` (rounded+clamped) |
|
|
102
|
+
| `rotate` | `angle` −180..180 (clockwise °) | `rot()` @90s, else `rotate()` |
|
|
95
103
|
|
|
96
104
|
Excluded (no clean VIPS mapping): `denoise`, `noise`, `curves`,
|
|
97
105
|
`lensBlur`/`tiltShift`/`zoomBlur`, halftones, warps.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { EditPipeline } from './pipeline.js';
|
|
2
|
+
export { SmallPreview } from './smallPreview.js';
|
|
2
3
|
export { TRANSFORMS, validateEdit, normalizeEdit } from './transforms/index.js';
|
|
3
4
|
export { validateState, stateToJSON, stateFromJSON } from './transforms/state.js';
|
|
4
5
|
export type { Transform, ParamControl, RenderContext, Target } from './transforms/transform.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAClF,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAClF,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
// index.ts — minimal public surface: the pipeline,
|
|
2
|
-
// helpers, and the types needed to consume them (including
|
|
3
|
-
// custom Transform). Internal helpers (lookup, isNumInRange,
|
|
1
|
+
// index.ts — minimal public surface: the pipeline, small previews, the
|
|
2
|
+
// registry, state helpers, and the types needed to consume them (including
|
|
3
|
+
// writing a custom Transform). Internal helpers (lookup, isNumInRange,
|
|
4
4
|
// setFloatUniform, math utils, per-transform types) live in their own
|
|
5
5
|
// modules — import those directly.
|
|
6
6
|
export { EditPipeline } from './pipeline.js';
|
|
7
|
+
export { SmallPreview } from './smallPreview.js';
|
|
7
8
|
export { TRANSFORMS, validateEdit, normalizeEdit } from './transforms/index.js';
|
|
8
9
|
export { validateState, stateToJSON, stateFromJSON } from './transforms/state.js';
|
|
9
10
|
export { emptyState, EDIT_STATE_VERSION } from './types.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,2EAA2E;AAC3E,uEAAuE;AACvE,sEAAsE;AACtE,mCAAmC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/math.d.ts
CHANGED
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
export declare function clampf(lo: number, v: number, hi: number): number;
|
|
2
2
|
/** Exposure gain for a stop shift. */
|
|
3
3
|
export declare function exposureMult(stops: number): number;
|
|
4
|
+
/** Shadows weight for a clamped 0..1 luma: (1-l)^2 (dark-localized). */
|
|
5
|
+
export declare function shadowsWeight(luma01: number): number;
|
|
6
|
+
/** Highlights weight for a clamped 0..1 luma: l^2 (bright-localized). */
|
|
7
|
+
export declare function highlightsWeight(luma01: number): number;
|
|
8
|
+
/** Gray-pixel output of the shadows edit: v + (a*0.5)*(1-v)^2.
|
|
9
|
+
*
|
|
10
|
+
* The 0.5 keeps the curve monotonic increasing over the whole amount range
|
|
11
|
+
* (d/dv = 1-2k(1-v) >= 0 for k <= 0.5): without it black would lift past
|
|
12
|
+
* mid-gray at high amounts. Reference for the GLSL in shadows.ts and the
|
|
13
|
+
* loop in src/transforms/shadows.h.
|
|
14
|
+
*/
|
|
15
|
+
export declare function applyShadowsGray(v: number, amount: number): number;
|
|
16
|
+
/** Gray-pixel output of the highlights edit: v + (a*0.5)*v^2.
|
|
17
|
+
*
|
|
18
|
+
* The 0.5 keeps the curve monotonic increasing over the whole amount range
|
|
19
|
+
* (d/dv = 1+2kv >= 0 for k >= -0.5): without it white would recover below
|
|
20
|
+
* near-white at high negative amounts. Reference for the GLSL in
|
|
21
|
+
* highlights.ts and the loop in src/transforms/highlights.h.
|
|
22
|
+
*/
|
|
23
|
+
export declare function applyHighlightsGray(v: number, amount: number): number;
|
|
24
|
+
/** Red/blue white-balance gains for a warmth amount in [-1,1]. */
|
|
25
|
+
export declare function warmthGains(amount: number): {
|
|
26
|
+
r: number;
|
|
27
|
+
b: number;
|
|
28
|
+
};
|
|
4
29
|
/** 1D gaussian kernel for a blur radius (sigma = radius/2). Preview + docs.
|
|
5
30
|
*
|
|
6
31
|
* Single source of truth, ported term-for-term to src/transforms/gaussian.h:
|
package/dist/math.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAWA,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,sCAAsC;AACtC,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAGpE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAavD"}
|
package/dist/math.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
// math.ts — CPU reference for every edit's pixel math.
|
|
2
2
|
//
|
|
3
3
|
// These functions are the single source of truth shared (by port, not by
|
|
4
|
-
// import) with the GLSL in
|
|
4
|
+
// import) with the GLSL in transforms/ and the libvips code in src/transforms/:
|
|
5
5
|
// preview (WebGL) == math.ts == VIPS applier
|
|
6
6
|
// all operate on sRGB-encoded 0..1 floats and apply in array order.
|
|
7
7
|
//
|
|
8
8
|
// glfx.js inspiration: brightnessContrast / hueSaturation / sepia / vibrance /
|
|
9
|
-
// vignette shaders are direct ports of evanw/glfx.js adjust filters
|
|
10
|
-
//
|
|
11
|
-
// so a VIPS `recomb`/`linear` does exactly what the canvas showed.
|
|
9
|
+
// vignette shaders are direct ports of evanw/glfx.js adjust filters, so a VIPS
|
|
10
|
+
// `linear` or matrix does exactly what the canvas showed.
|
|
12
11
|
export function clampf(lo, v, hi) {
|
|
13
12
|
return Math.min(hi, Math.max(lo, v));
|
|
14
13
|
}
|
|
@@ -16,6 +15,41 @@ export function clampf(lo, v, hi) {
|
|
|
16
15
|
export function exposureMult(stops) {
|
|
17
16
|
return Math.pow(2, clampf(-5, stops, 5));
|
|
18
17
|
}
|
|
18
|
+
/** Shadows weight for a clamped 0..1 luma: (1-l)^2 (dark-localized). */
|
|
19
|
+
export function shadowsWeight(luma01) {
|
|
20
|
+
const l = clampf(0, luma01, 1);
|
|
21
|
+
return (1 - l) * (1 - l);
|
|
22
|
+
}
|
|
23
|
+
/** Highlights weight for a clamped 0..1 luma: l^2 (bright-localized). */
|
|
24
|
+
export function highlightsWeight(luma01) {
|
|
25
|
+
const l = clampf(0, luma01, 1);
|
|
26
|
+
return l * l;
|
|
27
|
+
}
|
|
28
|
+
/** Gray-pixel output of the shadows edit: v + (a*0.5)*(1-v)^2.
|
|
29
|
+
*
|
|
30
|
+
* The 0.5 keeps the curve monotonic increasing over the whole amount range
|
|
31
|
+
* (d/dv = 1-2k(1-v) >= 0 for k <= 0.5): without it black would lift past
|
|
32
|
+
* mid-gray at high amounts. Reference for the GLSL in shadows.ts and the
|
|
33
|
+
* loop in src/transforms/shadows.h.
|
|
34
|
+
*/
|
|
35
|
+
export function applyShadowsGray(v, amount) {
|
|
36
|
+
return v + clampf(-1, amount, 1) * 0.5 * shadowsWeight(v);
|
|
37
|
+
}
|
|
38
|
+
/** Gray-pixel output of the highlights edit: v + (a*0.5)*v^2.
|
|
39
|
+
*
|
|
40
|
+
* The 0.5 keeps the curve monotonic increasing over the whole amount range
|
|
41
|
+
* (d/dv = 1+2kv >= 0 for k >= -0.5): without it white would recover below
|
|
42
|
+
* near-white at high negative amounts. Reference for the GLSL in
|
|
43
|
+
* highlights.ts and the loop in src/transforms/highlights.h.
|
|
44
|
+
*/
|
|
45
|
+
export function applyHighlightsGray(v, amount) {
|
|
46
|
+
return v + clampf(-1, amount, 1) * 0.5 * highlightsWeight(v);
|
|
47
|
+
}
|
|
48
|
+
/** Red/blue white-balance gains for a warmth amount in [-1,1]. */
|
|
49
|
+
export function warmthGains(amount) {
|
|
50
|
+
const a = clampf(-1, amount, 1);
|
|
51
|
+
return { r: 1 + a * 0.3, b: 1 - a * 0.3 };
|
|
52
|
+
}
|
|
19
53
|
/** 1D gaussian kernel for a blur radius (sigma = radius/2). Preview + docs.
|
|
20
54
|
*
|
|
21
55
|
* Single source of truth, ported term-for-term to src/transforms/gaussian.h:
|
package/dist/math.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.js","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,EAAE;AACF,yEAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"math.js","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"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"}
|
package/dist/pipeline.d.ts
CHANGED
|
@@ -108,6 +108,8 @@ export declare class EditPipeline {
|
|
|
108
108
|
* (used by the sharpen mix pass). `setUniforms` fills the rest.
|
|
109
109
|
*/
|
|
110
110
|
pass(frag: string, from: Target, to: Target, setUniforms?: UniformSetter, extraTex?: ExtraTex): void;
|
|
111
|
+
/** Render `from` through `frag` into a framebuffer (null = the canvas). */
|
|
112
|
+
private draw;
|
|
111
113
|
/** Copy one target to another with the identity shader. */
|
|
112
114
|
blit(from: Target, to: Target): void;
|
|
113
115
|
/**
|
|
@@ -125,5 +127,12 @@ export declare class EditPipeline {
|
|
|
125
127
|
* unflipped upload.)
|
|
126
128
|
*/
|
|
127
129
|
private toCanvas;
|
|
130
|
+
/**
|
|
131
|
+
* drawImage() rejects ImageData — a valid TexImageSource that texImage2D
|
|
132
|
+
* accepts — so stage ImageData through a 2D canvas first. Everything else
|
|
133
|
+
* passes through untouched. Duck-types ({width,height,data}) instead of
|
|
134
|
+
* instanceof so cross-realm ImageData works too.
|
|
135
|
+
*/
|
|
136
|
+
static toDrawableSource(source: TexImageSource): CanvasImageSource;
|
|
128
137
|
}
|
|
129
138
|
//# sourceMappingURL=pipeline.d.ts.map
|
package/dist/pipeline.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAiB,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAAkC,KAAK,IAAI,EAAkB,MAAM,YAAY,CAAC;AAEvF,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAwB;IAClC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,QAAQ,CAAmC;IAEnD,OAAO,CAAC,IAAI,CAA4B;IAIxC,OAAO,CAAC,GAAG,CAAuB;IAClC,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAAK;IACjB,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IAEtB;;;;;;OAMG;gBACgB,MAAM,EAAE,iBAAiB;IA2B5C,sEAAsE;IACtE,IAAW,KAAK,IAAI,MAAM,CAEzB;IACD,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,4EAA4E;IACrE,QAAQ,IAAI,IAAI,EAAE;IAIzB,yEAAyE;IAClE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAKpC,kDAAkD;IAC3C,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAKhC,8CAA8C;IACvC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKtC,sCAAsC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAM/C,oEAAoE;IAC7D,UAAU,IAAI,IAAI;IAKzB,8CAA8C;IACvC,MAAM,IAAI,MAAM;IAIvB;;;;;;OAMG;IACH,gBAAuB,OAAO,QAAQ;IAEtC,2DAA2D;IAC3D,OAAO,CAAC,UAAU;IAelB,0EAA0E;IAC1E,OAAO,CAAC,YAAY;IAQpB;;;;;;OAMG;IACI,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAuD7C;;;;;;;;;OASG;IACI,MAAM,IAAI,IAAI;IAqCrB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAoBrB,2EAA2E;IAC3E,OAAO,CAAC,UAAU;IAelB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAqBlB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAiBlB;;;OAGG;IACH,OAAO,CAAC,OAAO;IAcf,yEAAyE;IACzE,OAAO,CAAC,OAAO;IAoBf;;;;;OAKG;IACI,IAAI,CACT,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,WAAW,CAAC,EAAE,aAAa,EAC3B,QAAQ,CAAC,EAAE,QAAQ,GAClB,IAAI;IAIP,2EAA2E;IAC3E,OAAO,CAAC,IAAI;IAmCZ,2DAA2D;IACpD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAI3C;;;;;OAKG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAenF;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;IAShB;;;;;OAKG;WACW,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,iBAAiB;CAiB1E"}
|
package/dist/pipeline.js
CHANGED
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
// array (normalized) is what vips-preview accepts as "edits".
|
|
14
14
|
import { BLIT_FRAG, COPY_FRAG, GAUSS_FRAG, VERT } from './shaders.js';
|
|
15
15
|
import { TRANSFORMS, normalizeEdit } from './transforms/index.js';
|
|
16
|
-
import {
|
|
16
|
+
import { stateToJSON } from './transforms/state.js';
|
|
17
|
+
import { EDIT_STATE_VERSION, emptyState } from './types.js';
|
|
17
18
|
export class EditPipeline {
|
|
18
19
|
/**
|
|
19
20
|
* Take over the canvas' WebGL context. preserveDrawingBuffer stays true
|
|
@@ -83,7 +84,7 @@ export class EditPipeline {
|
|
|
83
84
|
}
|
|
84
85
|
/** Replace the whole edit list (normalizing each edit) and re-render. */
|
|
85
86
|
setEdits(edits) {
|
|
86
|
-
this.state = { version:
|
|
87
|
+
this.state = { version: EDIT_STATE_VERSION, edits: edits.map(normalizeEdit) };
|
|
87
88
|
this.render();
|
|
88
89
|
}
|
|
89
90
|
/** Append one edit (normalized) and re-render. */
|
|
@@ -110,7 +111,7 @@ export class EditPipeline {
|
|
|
110
111
|
}
|
|
111
112
|
/** Canonical JSON state for the VIPS side. */
|
|
112
113
|
toJSON() {
|
|
113
|
-
return
|
|
114
|
+
return stateToJSON(this.state);
|
|
114
115
|
}
|
|
115
116
|
/** Resolve the pixel size of any TexImageSource upload. */
|
|
116
117
|
sourceDims(source) {
|
|
@@ -165,14 +166,14 @@ export class EditPipeline {
|
|
|
165
166
|
if (!g)
|
|
166
167
|
throw new Error('setImage: 2D context unavailable for downscale');
|
|
167
168
|
g.imageSmoothingQuality = 'high';
|
|
168
|
-
g.drawImage(source, 0, 0, w, h);
|
|
169
|
+
g.drawImage(EditPipeline.toDrawableSource(source), 0, 0, w, h);
|
|
169
170
|
upload = scratch;
|
|
170
171
|
}
|
|
171
172
|
this.imgW = w;
|
|
172
173
|
this.imgH = h;
|
|
173
174
|
this.outW = w;
|
|
174
175
|
this.outH = h;
|
|
175
|
-
this.resScale =
|
|
176
|
+
this.resScale = w / dims.w;
|
|
176
177
|
for (const t of [this.src, this.ping, this.pong, this.extra]) {
|
|
177
178
|
if (t) {
|
|
178
179
|
gl.deleteTexture(t.tex);
|
|
@@ -388,9 +389,13 @@ export class EditPipeline {
|
|
|
388
389
|
* (used by the sharpen mix pass). `setUniforms` fills the rest.
|
|
389
390
|
*/
|
|
390
391
|
pass(frag, from, to, setUniforms, extraTex) {
|
|
392
|
+
this.draw(frag, from, to.fb, to.w, to.h, setUniforms, extraTex);
|
|
393
|
+
}
|
|
394
|
+
/** Render `from` through `frag` into a framebuffer (null = the canvas). */
|
|
395
|
+
draw(frag, from, fb, w, h, setUniforms, extraTex) {
|
|
391
396
|
const gl = this.gl;
|
|
392
|
-
gl.bindFramebuffer(gl.FRAMEBUFFER,
|
|
393
|
-
gl.viewport(0, 0,
|
|
397
|
+
gl.bindFramebuffer(gl.FRAMEBUFFER, fb);
|
|
398
|
+
gl.viewport(0, 0, w, h);
|
|
394
399
|
const prog = this.program(frag);
|
|
395
400
|
gl.useProgram(prog);
|
|
396
401
|
const loc = gl.getAttribLocation(prog, 'aPos');
|
|
@@ -450,28 +455,35 @@ export class EditPipeline {
|
|
|
450
455
|
* unflipped upload.)
|
|
451
456
|
*/
|
|
452
457
|
toCanvas(from) {
|
|
453
|
-
const gl = this.gl;
|
|
454
458
|
if (this.outW <= 0 || this.outH <= 0)
|
|
455
459
|
return;
|
|
456
460
|
if (this.canvas.width !== this.outW || this.canvas.height !== this.outH) {
|
|
457
461
|
this.canvas.width = this.outW;
|
|
458
462
|
this.canvas.height = this.outH;
|
|
459
463
|
}
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
464
|
+
this.draw(BLIT_FRAG, from, null, this.outW, this.outH);
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* drawImage() rejects ImageData — a valid TexImageSource that texImage2D
|
|
468
|
+
* accepts — so stage ImageData through a 2D canvas first. Everything else
|
|
469
|
+
* passes through untouched. Duck-types ({width,height,data}) instead of
|
|
470
|
+
* instanceof so cross-realm ImageData works too.
|
|
471
|
+
*/
|
|
472
|
+
static toDrawableSource(source) {
|
|
473
|
+
const o = source;
|
|
474
|
+
if (typeof o.width !== 'number' ||
|
|
475
|
+
typeof o.height !== 'number' ||
|
|
476
|
+
!(o.data instanceof Uint8ClampedArray)) {
|
|
477
|
+
return source;
|
|
478
|
+
}
|
|
479
|
+
const staged = document.createElement('canvas');
|
|
480
|
+
staged.width = o.width;
|
|
481
|
+
staged.height = o.height;
|
|
482
|
+
const g = staged.getContext('2d');
|
|
483
|
+
if (!g)
|
|
484
|
+
throw new Error('toDrawableSource: 2D context unavailable for ImageData upload');
|
|
485
|
+
g.putImageData(source, 0, 0);
|
|
486
|
+
return staged;
|
|
475
487
|
}
|
|
476
488
|
}
|
|
477
489
|
/**
|
package/dist/pipeline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
|
package/dist/shaders.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
export declare const VERT = "\nattribute vec2 aPos;\nvarying vec2 texCoord;\nvoid main() {\n texCoord = vec2(aPos.x * 0.5 + 0.5, aPos.y * 0.5 + 0.5);\n gl_Position = vec4(aPos, 0.0, 1.0);\n}\n";
|
|
2
2
|
export declare const COPY_FRAG: string;
|
|
3
|
-
/** Final blit to the canvas
|
|
3
|
+
/** Final blit to the canvas: flips Y once, compensating the unflipped upload. */
|
|
4
4
|
export declare const BLIT_FRAG: string;
|
|
5
|
-
/** Separable gaussian, one axis per draw (dir = (1/w,0) or (0,1/h)). */
|
|
5
|
+
/** Separable gaussian, one axis per draw (dir = (1/w,0) or (0,1/h)). RGB only: alpha stays. */
|
|
6
6
|
export declare const GAUSS_FRAG: string;
|
|
7
|
-
/** glfx unsharp-mix: mix(blurred, original, 1 + strength). */
|
|
8
7
|
//# sourceMappingURL=shaders.d.ts.map
|
package/dist/shaders.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shaders.d.ts","sourceRoot":"","sources":["../src/shaders.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shaders.d.ts","sourceRoot":"","sources":["../src/shaders.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,IAAI,0KAOhB,CAAC;AAQF,eAAO,MAAM,SAAS,QAMrB,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,SAAS,QAMrB,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,UAAU,QAetB,CAAC"}
|
package/dist/shaders.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
// shaders.ts —
|
|
1
|
+
// shaders.ts — shared GLSL for the preview pipeline (quad, copy, blit, gaussian).
|
|
2
2
|
//
|
|
3
|
-
//
|
|
4
|
-
// of evanw/glfx.js src/filters/adjust/*.js
|
|
5
|
-
//
|
|
6
|
-
// are trivial shaders in the same style. The VIPS applier (src/edit.h)
|
|
7
|
-
// implements these exact formulas, so the canvas preview is WYSIWYG.
|
|
3
|
+
// Per-edit shaders live next to their Transform in transforms/. Most are ports
|
|
4
|
+
// of evanw/glfx.js src/filters/adjust/*.js; the VIPS side (src/transforms/)
|
|
5
|
+
// implements the same formulas, so the canvas preview is WYSIWYG.
|
|
8
6
|
export const VERT = `
|
|
9
7
|
attribute vec2 aPos;
|
|
10
8
|
varying vec2 texCoord;
|
|
@@ -24,28 +22,27 @@ void main() {
|
|
|
24
22
|
gl_FragColor = texture2D(texture, texCoord);
|
|
25
23
|
}
|
|
26
24
|
`;
|
|
27
|
-
/** Final blit to the canvas
|
|
25
|
+
/** Final blit to the canvas: flips Y once, compensating the unflipped upload. */
|
|
28
26
|
export const BLIT_FRAG = PRELUDE +
|
|
29
27
|
`
|
|
30
28
|
void main() {
|
|
31
29
|
gl_FragColor = texture2D(texture, vec2(texCoord.x, 1.0 - texCoord.y));
|
|
32
30
|
}
|
|
33
31
|
`;
|
|
34
|
-
/** Separable gaussian, one axis per draw (dir = (1/w,0) or (0,1/h)). */
|
|
32
|
+
/** Separable gaussian, one axis per draw (dir = (1/w,0) or (0,1/h)). RGB only: alpha stays. */
|
|
35
33
|
export const GAUSS_FRAG = PRELUDE +
|
|
36
34
|
`
|
|
37
35
|
uniform vec2 dir;
|
|
38
36
|
uniform float kernel[31];
|
|
39
37
|
uniform int count;
|
|
40
38
|
void main() {
|
|
41
|
-
|
|
39
|
+
vec3 sum = vec3(0.0);
|
|
42
40
|
for (int i = 0; i < 31; i++) {
|
|
43
41
|
if (i >= count) break;
|
|
44
42
|
vec2 off = dir * float(i - (count - 1) / 2);
|
|
45
|
-
sum += texture2D(texture, texCoord + off) * kernel[i];
|
|
43
|
+
sum += texture2D(texture, texCoord + off).rgb * kernel[i];
|
|
46
44
|
}
|
|
47
|
-
gl_FragColor = sum;
|
|
45
|
+
gl_FragColor = vec4(sum, texture2D(texture, texCoord).a);
|
|
48
46
|
}
|
|
49
47
|
`;
|
|
50
|
-
/** glfx unsharp-mix: mix(blurred, original, 1 + strength). */
|
|
51
48
|
//# sourceMappingURL=shaders.js.map
|
package/dist/shaders.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shaders.js","sourceRoot":"","sources":["../src/shaders.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"shaders.js","sourceRoot":"","sources":["../src/shaders.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,kEAAkE;AAElE,MAAM,CAAC,MAAM,IAAI,GAAG;;;;;;;CAOnB,CAAC;AAEF,MAAM,OAAO,GAAG;;;;CAIf,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GACpB,OAAO;IACP;;;;CAID,CAAC;AAEF,iFAAiF;AACjF,MAAM,CAAC,MAAM,SAAS,GACpB,OAAO;IACP;;;;CAID,CAAC;AAEF,+FAA+F;AAC/F,MAAM,CAAC,MAAM,UAAU,GACrB,OAAO;IACP;;;;;;;;;;;;;CAaD,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Edit } from './types.js';
|
|
2
|
+
export declare class SmallPreview {
|
|
3
|
+
/** Default longest side of the downscaled working copy. */
|
|
4
|
+
static readonly MAX_DIM = 512;
|
|
5
|
+
private pipe;
|
|
6
|
+
private view;
|
|
7
|
+
private hasSource;
|
|
8
|
+
private readonly maxDim;
|
|
9
|
+
constructor(maxDim?: number);
|
|
10
|
+
/** Last render output size (downscaled source size when no geometric edit applies). */
|
|
11
|
+
get width(): number;
|
|
12
|
+
get height(): number;
|
|
13
|
+
/**
|
|
14
|
+
* Downscale `source` to <= maxDim (aspect-fit, never upscaled) through a
|
|
15
|
+
* 2D canvas and upload it once to the hidden pipeline. Replaces any
|
|
16
|
+
* previous source. Throws when WebGL/2D is unavailable.
|
|
17
|
+
*/
|
|
18
|
+
setSource(source: TexImageSource): void;
|
|
19
|
+
/**
|
|
20
|
+
* Render `edits` over the downscaled source and return the result as a
|
|
21
|
+
* fresh caller-owned 2D canvas (sized to the rendered output area).
|
|
22
|
+
* The hidden pipeline keeps its compiled programs between calls, so
|
|
23
|
+
* repeated renders only pay for the edit passes plus a small copy.
|
|
24
|
+
*/
|
|
25
|
+
render(edits: Edit[]): HTMLCanvasElement;
|
|
26
|
+
/** Release the hidden WebGL context; render() throws until setSource again. */
|
|
27
|
+
dispose(): void;
|
|
28
|
+
/** Pixel size of any TexImageSource upload (mirrors EditPipeline). */
|
|
29
|
+
private sourceDims;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=smallPreview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smallPreview.d.ts","sourceRoot":"","sources":["../src/smallPreview.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,qBAAa,YAAY;IACvB,2DAA2D;IAC3D,gBAAuB,OAAO,OAAO;IAErC,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,IAAI,CAAkC;IAC9C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEb,MAAM,GAAE,MAA6B;IAMxD,uFAAuF;IACvF,IAAW,KAAK,IAAI,MAAM,CAEzB;IACD,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAyB9C;;;;;OAKG;IACI,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,iBAAiB;IAgB/C,+EAA+E;IACxE,OAAO,IAAI,IAAI;IActB,sEAAsE;IACtE,OAAO,CAAC,UAAU;CAWnB"}
|