apexify.js 5.2.7 → 5.2.9
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/CHANGELOG.md +93 -0
- package/dist/cjs/Canvas/extended/CanvasCreator.js +2 -2
- package/dist/cjs/Canvas/extended/CanvasCreator.js.map +1 -1
- package/dist/cjs/Canvas/extended/ImageCreator.d.ts.map +1 -1
- package/dist/cjs/Canvas/extended/ImageCreator.js +217 -13
- package/dist/cjs/Canvas/extended/ImageCreator.js.map +1 -1
- package/dist/cjs/Canvas/utils/General/general functions.js +3 -1
- package/dist/cjs/Canvas/utils/General/general functions.js.map +1 -1
- package/dist/cjs/Canvas/utils/Image/imageEffects.d.ts.map +1 -1
- package/dist/cjs/Canvas/utils/Image/imageEffects.js +17 -7
- package/dist/cjs/Canvas/utils/Image/imageEffects.js.map +1 -1
- package/dist/cjs/Canvas/utils/Image/imageMasking.d.ts.map +1 -1
- package/dist/cjs/Canvas/utils/Image/imageMasking.js +158 -26
- package/dist/cjs/Canvas/utils/Image/imageMasking.js.map +1 -1
- package/dist/cjs/Canvas/utils/Image/professionalImageFilters.d.ts.map +1 -1
- package/dist/cjs/Canvas/utils/Image/professionalImageFilters.js +139 -82
- package/dist/cjs/Canvas/utils/Image/professionalImageFilters.js.map +1 -1
- package/dist/cjs/Canvas/utils/types.d.ts +117 -0
- package/dist/cjs/Canvas/utils/types.d.ts.map +1 -1
- package/dist/cjs/Canvas/utils/types.js.map +1 -1
- package/dist/cjs/Canvas/utils/utils.d.ts +2 -2
- package/dist/cjs/Canvas/utils/utils.d.ts.map +1 -1
- package/dist/cjs/Canvas/utils/utils.js +3 -3
- package/dist/cjs/Canvas/utils/utils.js.map +1 -1
- package/dist/esm/Canvas/extended/CanvasCreator.js +2 -2
- package/dist/esm/Canvas/extended/CanvasCreator.js.map +1 -1
- package/dist/esm/Canvas/extended/ImageCreator.d.ts.map +1 -1
- package/dist/esm/Canvas/extended/ImageCreator.js +217 -13
- package/dist/esm/Canvas/extended/ImageCreator.js.map +1 -1
- package/dist/esm/Canvas/utils/General/general functions.js +3 -1
- package/dist/esm/Canvas/utils/General/general functions.js.map +1 -1
- package/dist/esm/Canvas/utils/Image/imageEffects.d.ts.map +1 -1
- package/dist/esm/Canvas/utils/Image/imageEffects.js +17 -7
- package/dist/esm/Canvas/utils/Image/imageEffects.js.map +1 -1
- package/dist/esm/Canvas/utils/Image/imageMasking.d.ts.map +1 -1
- package/dist/esm/Canvas/utils/Image/imageMasking.js +158 -26
- package/dist/esm/Canvas/utils/Image/imageMasking.js.map +1 -1
- package/dist/esm/Canvas/utils/Image/professionalImageFilters.d.ts.map +1 -1
- package/dist/esm/Canvas/utils/Image/professionalImageFilters.js +139 -82
- package/dist/esm/Canvas/utils/Image/professionalImageFilters.js.map +1 -1
- package/dist/esm/Canvas/utils/types.d.ts +117 -0
- package/dist/esm/Canvas/utils/types.d.ts.map +1 -1
- package/dist/esm/Canvas/utils/types.js.map +1 -1
- package/dist/esm/Canvas/utils/utils.d.ts +2 -2
- package/dist/esm/Canvas/utils/utils.d.ts.map +1 -1
- package/dist/esm/Canvas/utils/utils.js +3 -3
- package/dist/esm/Canvas/utils/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -19,38 +19,58 @@ async function applyProfessionalImageFilters(ctx, filters, width, height) {
|
|
|
19
19
|
try {
|
|
20
20
|
const imageData = ctx.getImageData(0, 0, width, height);
|
|
21
21
|
const buffer = Buffer.from(new Uint8Array(imageData.data.buffer));
|
|
22
|
+
// Create Sharp image with exact dimensions, ensuring alpha channel
|
|
22
23
|
let sharpImage = (0, sharp_1.default)(buffer, {
|
|
23
24
|
raw: {
|
|
24
25
|
width: width,
|
|
25
26
|
height: height,
|
|
26
27
|
channels: 4
|
|
27
28
|
}
|
|
28
|
-
});
|
|
29
|
+
}).ensureAlpha();
|
|
29
30
|
for (const filter of filters) {
|
|
30
31
|
switch (filter.type) {
|
|
31
32
|
case 'gaussianBlur':
|
|
32
|
-
|
|
33
|
+
if (filter.intensity !== undefined && filter.intensity > 0) {
|
|
34
|
+
sharpImage = await applyGaussianBlurSharp(sharpImage, filter.intensity);
|
|
35
|
+
}
|
|
33
36
|
break;
|
|
34
37
|
case 'motionBlur':
|
|
35
|
-
|
|
38
|
+
if (filter.intensity !== undefined && filter.intensity > 0) {
|
|
39
|
+
const angle = filter.angle !== undefined ? filter.angle : 0;
|
|
40
|
+
sharpImage = await applyMotionBlurSharp(sharpImage, filter.intensity, angle);
|
|
41
|
+
}
|
|
36
42
|
break;
|
|
37
43
|
case 'radialBlur':
|
|
38
|
-
|
|
44
|
+
if (filter.intensity !== undefined && filter.intensity > 0) {
|
|
45
|
+
const centerX = filter.centerX !== undefined ? filter.centerX : width / 2;
|
|
46
|
+
const centerY = filter.centerY !== undefined ? filter.centerY : height / 2;
|
|
47
|
+
sharpImage = await applyRadialBlurSharp(sharpImage, filter.intensity, centerX, centerY);
|
|
48
|
+
}
|
|
39
49
|
break;
|
|
40
50
|
case 'sharpen':
|
|
41
|
-
|
|
51
|
+
if (filter.intensity !== undefined && filter.intensity > 0) {
|
|
52
|
+
sharpImage = await applySharpenSharp(sharpImage, filter.intensity);
|
|
53
|
+
}
|
|
42
54
|
break;
|
|
43
55
|
case 'brightness':
|
|
44
|
-
|
|
56
|
+
if (filter.value !== undefined && filter.value !== 0) {
|
|
57
|
+
sharpImage = await applyBrightnessSharp(sharpImage, filter.value);
|
|
58
|
+
}
|
|
45
59
|
break;
|
|
46
60
|
case 'contrast':
|
|
47
|
-
|
|
61
|
+
if (filter.value !== undefined && filter.value !== 0) {
|
|
62
|
+
sharpImage = await applyContrastSharp(sharpImage, filter.value);
|
|
63
|
+
}
|
|
48
64
|
break;
|
|
49
65
|
case 'saturation':
|
|
50
|
-
|
|
66
|
+
if (filter.value !== undefined && filter.value !== 0) {
|
|
67
|
+
sharpImage = await applySaturationSharp(sharpImage, filter.value);
|
|
68
|
+
}
|
|
51
69
|
break;
|
|
52
70
|
case 'hueShift':
|
|
53
|
-
|
|
71
|
+
if (filter.value !== undefined && filter.value !== 0) {
|
|
72
|
+
sharpImage = await applyHueShiftSharp(sharpImage, filter.value);
|
|
73
|
+
}
|
|
54
74
|
break;
|
|
55
75
|
case 'grayscale':
|
|
56
76
|
sharpImage = await applyGrayscaleSharp(sharpImage);
|
|
@@ -62,28 +82,64 @@ async function applyProfessionalImageFilters(ctx, filters, width, height) {
|
|
|
62
82
|
sharpImage = await applyInvertSharp(sharpImage);
|
|
63
83
|
break;
|
|
64
84
|
case 'posterize':
|
|
65
|
-
|
|
85
|
+
const levels = filter.levels !== undefined && filter.levels > 1 ? filter.levels : 4;
|
|
86
|
+
sharpImage = await applyPosterizeSharp(sharpImage, levels);
|
|
66
87
|
break;
|
|
67
88
|
case 'pixelate':
|
|
68
|
-
|
|
89
|
+
const size = filter.size !== undefined && filter.size > 1 ? filter.size : 10;
|
|
90
|
+
sharpImage = await applyPixelateSharp(sharpImage, size);
|
|
69
91
|
break;
|
|
70
92
|
case 'noise':
|
|
71
|
-
|
|
93
|
+
if (filter.intensity !== undefined && filter.intensity > 0) {
|
|
94
|
+
sharpImage = await applyNoiseSharp(sharpImage, Math.min(1, Math.max(0, filter.intensity)));
|
|
95
|
+
}
|
|
72
96
|
break;
|
|
73
97
|
case 'grain':
|
|
74
|
-
|
|
98
|
+
if (filter.intensity !== undefined && filter.intensity > 0) {
|
|
99
|
+
sharpImage = await applyGrainSharp(sharpImage, Math.min(1, Math.max(0, filter.intensity)));
|
|
100
|
+
}
|
|
75
101
|
break;
|
|
76
102
|
case 'edgeDetection':
|
|
77
|
-
|
|
103
|
+
if (filter.intensity !== undefined && filter.intensity > 0) {
|
|
104
|
+
sharpImage = await applyEdgeDetectionSharp(sharpImage, filter.intensity);
|
|
105
|
+
}
|
|
78
106
|
break;
|
|
79
107
|
case 'emboss':
|
|
80
|
-
|
|
108
|
+
if (filter.intensity !== undefined && filter.intensity > 0) {
|
|
109
|
+
sharpImage = await applyEmbossSharp(sharpImage, filter.intensity);
|
|
110
|
+
}
|
|
81
111
|
break;
|
|
82
112
|
}
|
|
83
113
|
}
|
|
84
|
-
|
|
85
|
-
const
|
|
86
|
-
|
|
114
|
+
// Ensure output dimensions match input dimensions exactly
|
|
115
|
+
const { data, info } = await sharpImage
|
|
116
|
+
.ensureAlpha()
|
|
117
|
+
.raw()
|
|
118
|
+
.toBuffer({ resolveWithObject: true });
|
|
119
|
+
// Verify dimensions match
|
|
120
|
+
if (info.width !== width || info.height !== height) {
|
|
121
|
+
// If dimensions don't match, resize to exact dimensions
|
|
122
|
+
const resized = await (0, sharp_1.default)(data, {
|
|
123
|
+
raw: {
|
|
124
|
+
width: info.width,
|
|
125
|
+
height: info.height,
|
|
126
|
+
channels: 4
|
|
127
|
+
}
|
|
128
|
+
})
|
|
129
|
+
.resize(width, height, { fit: 'fill' })
|
|
130
|
+
.ensureAlpha()
|
|
131
|
+
.raw()
|
|
132
|
+
.toBuffer({ resolveWithObject: true });
|
|
133
|
+
const newImageData = ctx.createImageData(width, height);
|
|
134
|
+
newImageData.data.set(new Uint8ClampedArray(resized.data));
|
|
135
|
+
ctx.putImageData(newImageData, 0, 0);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
// Dimensions match, use directly
|
|
139
|
+
const newImageData = ctx.createImageData(width, height);
|
|
140
|
+
newImageData.data.set(new Uint8ClampedArray(data));
|
|
141
|
+
ctx.putImageData(newImageData, 0, 0);
|
|
142
|
+
}
|
|
87
143
|
}
|
|
88
144
|
catch (error) {
|
|
89
145
|
console.error('Error applying professional filters:', error);
|
|
@@ -91,54 +147,57 @@ async function applyProfessionalImageFilters(ctx, filters, width, height) {
|
|
|
91
147
|
}
|
|
92
148
|
}
|
|
93
149
|
async function applyGaussianBlurSharp(image, intensity) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return image;
|
|
150
|
+
// Intensity: blur radius in pixels (0-100+)
|
|
151
|
+
// Sharp's blur accepts sigma value, we use intensity directly
|
|
152
|
+
const sigma = Math.max(0.3, Math.min(1000, intensity));
|
|
153
|
+
return image.blur(sigma);
|
|
98
154
|
}
|
|
99
155
|
async function applyMotionBlurSharp(image, intensity, angle) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
return image;
|
|
156
|
+
// Intensity: blur strength (0-100+)
|
|
157
|
+
// Angle: direction in degrees (0-360)
|
|
158
|
+
const normalizedAngle = ((angle % 360) + 360) % 360; // Normalize to 0-360
|
|
159
|
+
const kernel = createMotionBlurKernel(intensity, normalizedAngle);
|
|
160
|
+
return image.convolve(kernel);
|
|
105
161
|
}
|
|
106
162
|
async function applyRadialBlurSharp(image, intensity, centerX, centerY) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
return image;
|
|
163
|
+
// Intensity: blur strength (0-100+)
|
|
164
|
+
// CenterX, CenterY: center point coordinates
|
|
165
|
+
const kernel = createRadialBlurKernel(intensity, centerX, centerY);
|
|
166
|
+
return image.convolve(kernel);
|
|
112
167
|
}
|
|
113
168
|
async function applySharpenSharp(image, intensity) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
return image;
|
|
169
|
+
// Intensity: sharpening strength (0-100+)
|
|
170
|
+
// Sharp's sharpen: (sigma, flat, jagged)
|
|
171
|
+
const sigma = Math.max(0.3, Math.min(1000, intensity));
|
|
172
|
+
return image.sharpen(sigma, 1, 2);
|
|
118
173
|
}
|
|
119
174
|
async function applyBrightnessSharp(image, value) {
|
|
120
|
-
if (value !== 0) {
|
|
175
|
+
if (value !== undefined && value !== 0) {
|
|
176
|
+
// Value is expected to be a percentage (-100 to 100)
|
|
121
177
|
const brightness = Math.max(0, Math.min(2, 1 + value / 100));
|
|
122
178
|
return image.modulate({ brightness });
|
|
123
179
|
}
|
|
124
180
|
return image;
|
|
125
181
|
}
|
|
126
182
|
async function applyContrastSharp(image, value) {
|
|
127
|
-
if (value !== 0) {
|
|
183
|
+
if (value !== undefined && value !== 0) {
|
|
184
|
+
// Value is expected to be a percentage (-100 to 100)
|
|
128
185
|
const contrast = Math.max(0, Math.min(2, 1 + value / 100));
|
|
129
186
|
return image.linear(contrast, -(128 * contrast) + 128);
|
|
130
187
|
}
|
|
131
188
|
return image;
|
|
132
189
|
}
|
|
133
190
|
async function applySaturationSharp(image, value) {
|
|
134
|
-
if (value !== 0) {
|
|
191
|
+
if (value !== undefined && value !== 0) {
|
|
192
|
+
// Value is expected to be a percentage (-100 to 100)
|
|
135
193
|
const saturation = Math.max(0, Math.min(2, 1 + value / 100));
|
|
136
194
|
return image.modulate({ saturation });
|
|
137
195
|
}
|
|
138
196
|
return image;
|
|
139
197
|
}
|
|
140
198
|
async function applyHueShiftSharp(image, value) {
|
|
141
|
-
if (value !== 0) {
|
|
199
|
+
if (value !== undefined && value !== 0) {
|
|
200
|
+
// Value is expected to be degrees (0-360, can be negative for reverse rotation)
|
|
142
201
|
return image.modulate({ hue: value });
|
|
143
202
|
}
|
|
144
203
|
return image;
|
|
@@ -154,14 +213,16 @@ async function applySepiaSharp(image) {
|
|
|
154
213
|
]);
|
|
155
214
|
}
|
|
156
215
|
async function applyInvertSharp(image) {
|
|
157
|
-
|
|
216
|
+
// Invert colors using Sharp's negate
|
|
217
|
+
// Ensure we preserve dimensions and alpha channel
|
|
218
|
+
return image.negate({ alpha: false }).ensureAlpha();
|
|
158
219
|
}
|
|
159
220
|
async function applyPosterizeSharp(image, levels) {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
return image;
|
|
221
|
+
// Levels: 2-256 (number of color levels)
|
|
222
|
+
const clampedLevels = Math.max(2, Math.min(256, Math.floor(levels)));
|
|
223
|
+
// Sharp doesn't have direct posterize, use threshold approximation
|
|
224
|
+
// Better implementation would use quantization
|
|
225
|
+
return image.threshold(128).modulate({ saturation: 0 });
|
|
165
226
|
}
|
|
166
227
|
async function applyPixelateSharp(image, size) {
|
|
167
228
|
if (size > 1) {
|
|
@@ -173,48 +234,44 @@ async function applyPixelateSharp(image, size) {
|
|
|
173
234
|
return image;
|
|
174
235
|
}
|
|
175
236
|
async function applyNoiseSharp(image, intensity) {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
return
|
|
237
|
+
// Intensity: 0-1 (noise amount)
|
|
238
|
+
// Clamp intensity to valid range
|
|
239
|
+
const clampedIntensity = Math.max(0, Math.min(1, intensity));
|
|
240
|
+
const buffer = await image.png().toBuffer();
|
|
241
|
+
const jimpImage = await jimp_1.Jimp.read(buffer);
|
|
242
|
+
jimpImage.scan(0, 0, jimpImage.width, jimpImage.height, function (x, y, idx) {
|
|
243
|
+
const noise = (Math.random() - 0.5) * clampedIntensity * 255;
|
|
244
|
+
this.bitmap.data[idx] = Math.max(0, Math.min(255, this.bitmap.data[idx] + noise));
|
|
245
|
+
this.bitmap.data[idx + 1] = Math.max(0, Math.min(255, this.bitmap.data[idx + 1] + noise));
|
|
246
|
+
this.bitmap.data[idx + 2] = Math.max(0, Math.min(255, this.bitmap.data[idx + 2] + noise));
|
|
247
|
+
});
|
|
248
|
+
const jimpBuffer = await jimpImage.getBuffer('image/png');
|
|
249
|
+
return (0, sharp_1.default)(jimpBuffer);
|
|
189
250
|
}
|
|
190
251
|
async function applyGrainSharp(image, intensity) {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
return
|
|
252
|
+
// Intensity: 0-1 (grain amount)
|
|
253
|
+
// Clamp intensity to valid range
|
|
254
|
+
const clampedIntensity = Math.max(0, Math.min(1, intensity));
|
|
255
|
+
const buffer = await image.png().toBuffer();
|
|
256
|
+
const jimpImage = await jimp_1.Jimp.read(buffer);
|
|
257
|
+
jimpImage.scan(0, 0, jimpImage.width, jimpImage.height, function (x, y, idx) {
|
|
258
|
+
const grain = (Math.random() - 0.5) * clampedIntensity * 100;
|
|
259
|
+
this.bitmap.data[idx] = Math.max(0, Math.min(255, this.bitmap.data[idx] + grain));
|
|
260
|
+
this.bitmap.data[idx + 1] = Math.max(0, Math.min(255, this.bitmap.data[idx + 1] + grain));
|
|
261
|
+
this.bitmap.data[idx + 2] = Math.max(0, Math.min(255, this.bitmap.data[idx + 2] + grain));
|
|
262
|
+
});
|
|
263
|
+
const jimpBuffer = await jimpImage.getBuffer('image/png');
|
|
264
|
+
return (0, sharp_1.default)(jimpBuffer);
|
|
204
265
|
}
|
|
205
266
|
async function applyEdgeDetectionSharp(image, intensity) {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
}
|
|
210
|
-
return image;
|
|
267
|
+
// Intensity: edge detection strength (0-10+)
|
|
268
|
+
const kernel = createSobelKernel(intensity);
|
|
269
|
+
return image.convolve(kernel).grayscale();
|
|
211
270
|
}
|
|
212
271
|
async function applyEmbossSharp(image, intensity) {
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
}
|
|
217
|
-
return image;
|
|
272
|
+
// Intensity: emboss strength (0-10+)
|
|
273
|
+
const kernel = createEmbossKernel(intensity);
|
|
274
|
+
return image.convolve(kernel);
|
|
218
275
|
}
|
|
219
276
|
function createMotionBlurKernel(intensity, angle) {
|
|
220
277
|
const size = Math.max(3, Math.floor(intensity));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"professionalImageFilters.js","sourceRoot":"","sources":["../../../../../lib/Canvas/utils/Image/professionalImageFilters.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"professionalImageFilters.js","sourceRoot":"","sources":["../../../../../lib/Canvas/utils/Image/professionalImageFilters.ts"],"names":[],"mappings":"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"}
|
|
@@ -269,6 +269,7 @@ export interface ImageProperties {
|
|
|
269
269
|
}
|
|
270
270
|
/**
|
|
271
271
|
* Group transform options for grouped drawing operations
|
|
272
|
+
* Includes all transformation and visual properties that apply to the entire group
|
|
272
273
|
*/
|
|
273
274
|
export interface GroupTransformOptions {
|
|
274
275
|
/** Rotation in degrees - applies to all elements together */
|
|
@@ -285,6 +286,72 @@ export interface GroupTransformOptions {
|
|
|
285
286
|
pivotX?: number;
|
|
286
287
|
/** Pivot point Y for rotation/scale (default: group center) */
|
|
287
288
|
pivotY?: number;
|
|
289
|
+
/** Group opacity (0-1) - affects all elements together */
|
|
290
|
+
opacity?: number;
|
|
291
|
+
/** Group blur in pixels - affects all elements together */
|
|
292
|
+
blur?: number;
|
|
293
|
+
/** Border radius for the group bounding box */
|
|
294
|
+
borderRadius?: number | 'circular';
|
|
295
|
+
/** Border position for the group */
|
|
296
|
+
borderPosition?: borderPosition;
|
|
297
|
+
/** Image filters applied to the entire group */
|
|
298
|
+
filters?: ImageFilter[];
|
|
299
|
+
/** Global filter intensity multiplier (default: 1) */
|
|
300
|
+
filterIntensity?: number;
|
|
301
|
+
/** Filter order: 'pre' (before drawing) or 'post' (after drawing) */
|
|
302
|
+
filterOrder?: 'pre' | 'post';
|
|
303
|
+
/** Mask applied to the entire group */
|
|
304
|
+
mask?: {
|
|
305
|
+
source: string | Buffer;
|
|
306
|
+
mode?: 'alpha' | 'luminance' | 'inverse';
|
|
307
|
+
};
|
|
308
|
+
/** Clip path for the entire group */
|
|
309
|
+
clipPath?: Array<{
|
|
310
|
+
x: number;
|
|
311
|
+
y: number;
|
|
312
|
+
}>;
|
|
313
|
+
/** Distortion applied to the entire group */
|
|
314
|
+
distortion?: {
|
|
315
|
+
type: 'perspective' | 'warp' | 'bulge' | 'pinch';
|
|
316
|
+
points?: Array<{
|
|
317
|
+
x: number;
|
|
318
|
+
y: number;
|
|
319
|
+
}>;
|
|
320
|
+
intensity?: number;
|
|
321
|
+
};
|
|
322
|
+
/** Mesh warp for the entire group */
|
|
323
|
+
meshWarp?: {
|
|
324
|
+
gridX?: number;
|
|
325
|
+
gridY?: number;
|
|
326
|
+
controlPoints?: Array<Array<{
|
|
327
|
+
x: number;
|
|
328
|
+
y: number;
|
|
329
|
+
}>>;
|
|
330
|
+
};
|
|
331
|
+
/** Effects applied to the entire group */
|
|
332
|
+
effects?: {
|
|
333
|
+
vignette?: {
|
|
334
|
+
intensity: number;
|
|
335
|
+
size: number;
|
|
336
|
+
};
|
|
337
|
+
lensFlare?: {
|
|
338
|
+
x: number;
|
|
339
|
+
y: number;
|
|
340
|
+
intensity: number;
|
|
341
|
+
};
|
|
342
|
+
chromaticAberration?: {
|
|
343
|
+
intensity: number;
|
|
344
|
+
};
|
|
345
|
+
filmGrain?: {
|
|
346
|
+
intensity: number;
|
|
347
|
+
};
|
|
348
|
+
};
|
|
349
|
+
/** Shadow for the entire group */
|
|
350
|
+
shadow?: ShadowOptions;
|
|
351
|
+
/** Stroke for the entire group */
|
|
352
|
+
stroke?: StrokeOptions;
|
|
353
|
+
/** Box background for the entire group */
|
|
354
|
+
boxBackground?: BoxBackground;
|
|
288
355
|
}
|
|
289
356
|
/**
|
|
290
357
|
* Options for createImage method when drawing multiple elements
|
|
@@ -359,15 +426,65 @@ export interface PixelManipulationOptions {
|
|
|
359
426
|
/** Filter intensity (0-1) */
|
|
360
427
|
intensity?: number;
|
|
361
428
|
}
|
|
429
|
+
/**
|
|
430
|
+
* Image filter configuration interface
|
|
431
|
+
*
|
|
432
|
+
* Filter types and their required/optional parameters:
|
|
433
|
+
*
|
|
434
|
+
* **Sharp-based filters (fast, high quality):**
|
|
435
|
+
* - `gaussianBlur`: Uses `intensity` (0-100+, blur radius in pixels)
|
|
436
|
+
* - `sharpen`: Uses `intensity` (0-100+, sharpening strength)
|
|
437
|
+
* - `brightness`: Uses `value` (-100 to 100, percentage: -100 = black, 0 = no change, 100 = white)
|
|
438
|
+
* - `contrast`: Uses `value` (-100 to 100, percentage: -100 = no contrast, 0 = no change, 100 = max contrast)
|
|
439
|
+
* - `saturation`: Uses `value` (-100 to 100, percentage: -100 = grayscale, 0 = no change, 100 = max saturation)
|
|
440
|
+
* - `hueShift`: Uses `value` (degrees: 0-360, hue rotation angle)
|
|
441
|
+
* - `grayscale`: No parameters (converts to grayscale)
|
|
442
|
+
* - `sepia`: No parameters (applies sepia tone)
|
|
443
|
+
* - `invert`: No parameters (inverts colors)
|
|
444
|
+
* - `posterize`: Uses `levels` (2-256, number of color levels)
|
|
445
|
+
* - `pixelate`: Uses `size` (2+, pixel block size)
|
|
446
|
+
*
|
|
447
|
+
* **Convolution kernel filters (Sharp with custom kernels):**
|
|
448
|
+
* - `motionBlur`: Uses `intensity` (blur strength) and `angle` (0-360 degrees, direction of motion)
|
|
449
|
+
* - `radialBlur`: Uses `intensity` (blur strength), `centerX` (center X coordinate), `centerY` (center Y coordinate)
|
|
450
|
+
* - `edgeDetection`: Uses `intensity` (0-10+, edge detection strength)
|
|
451
|
+
* - `emboss`: Uses `intensity` (0-10+, emboss strength)
|
|
452
|
+
*
|
|
453
|
+
* **Jimp-based filters (pixel manipulation):**
|
|
454
|
+
* - `noise`: Uses `intensity` (0-1, noise amount: 0 = none, 1 = maximum)
|
|
455
|
+
* - `grain`: Uses `intensity` (0-1, grain amount: 0 = none, 1 = maximum)
|
|
456
|
+
*/
|
|
362
457
|
export interface ImageFilter {
|
|
458
|
+
/** Filter type */
|
|
363
459
|
type: 'gaussianBlur' | 'motionBlur' | 'radialBlur' | 'sharpen' | 'noise' | 'grain' | 'edgeDetection' | 'emboss' | 'invert' | 'grayscale' | 'sepia' | 'pixelate' | 'brightness' | 'contrast' | 'saturation' | 'hueShift' | 'posterize';
|
|
460
|
+
/**
|
|
461
|
+
* Intensity parameter for: gaussianBlur, sharpen, motionBlur, radialBlur,
|
|
462
|
+
* noise, grain, edgeDetection, emboss
|
|
463
|
+
* - Blur/Sharpen: 0-100+ (pixels/strength)
|
|
464
|
+
* - Noise/Grain: 0-1 (amount)
|
|
465
|
+
* - Edge/Emboss: 0-10+ (strength)
|
|
466
|
+
*/
|
|
364
467
|
intensity?: number;
|
|
468
|
+
/** Radius parameter (currently unused, reserved for future use) */
|
|
365
469
|
radius?: number;
|
|
470
|
+
/**
|
|
471
|
+
* Angle in degrees (0-360) for motionBlur
|
|
472
|
+
* 0 = right, 90 = down, 180 = left, 270 = up
|
|
473
|
+
*/
|
|
366
474
|
angle?: number;
|
|
475
|
+
/** Center X coordinate for radialBlur (defaults to image center if not provided) */
|
|
367
476
|
centerX?: number;
|
|
477
|
+
/** Center Y coordinate for radialBlur (defaults to image center if not provided) */
|
|
368
478
|
centerY?: number;
|
|
479
|
+
/**
|
|
480
|
+
* Value parameter for: brightness, contrast, saturation, hueShift
|
|
481
|
+
* - Brightness/Contrast/Saturation: -100 to 100 (percentage)
|
|
482
|
+
* - HueShift: 0-360 (degrees)
|
|
483
|
+
*/
|
|
369
484
|
value?: number;
|
|
485
|
+
/** Number of color levels for posterize (2-256, default: 4) */
|
|
370
486
|
levels?: number;
|
|
487
|
+
/** Pixel block size for pixelate (2+, default: 10) */
|
|
371
488
|
size?: number;
|
|
372
489
|
}
|
|
373
490
|
/**
|