apexify.js 4.9.30 → 5.0.1
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 +137 -0
- package/README.md +119 -4
- package/apex-banner.png +0 -0
- package/dist/cjs/Canvas/ApexPainter.d.ts +158 -145
- package/dist/cjs/Canvas/ApexPainter.d.ts.map +1 -1
- package/dist/cjs/Canvas/ApexPainter.js +1443 -418
- package/dist/cjs/Canvas/ApexPainter.js.map +1 -1
- package/dist/cjs/Canvas/utils/Charts/charts.d.ts +7 -2
- package/dist/cjs/Canvas/utils/Charts/charts.d.ts.map +1 -1
- package/dist/cjs/Canvas/utils/Charts/charts.js +3 -1
- package/dist/cjs/Canvas/utils/Charts/charts.js.map +1 -1
- package/dist/cjs/Canvas/utils/Custom/advancedLines.d.ts +75 -0
- package/dist/cjs/Canvas/utils/Custom/advancedLines.d.ts.map +1 -0
- package/dist/cjs/Canvas/utils/Custom/advancedLines.js +263 -0
- package/dist/cjs/Canvas/utils/Custom/advancedLines.js.map +1 -0
- package/dist/cjs/Canvas/utils/Custom/customLines.d.ts +2 -1
- package/dist/cjs/Canvas/utils/Custom/customLines.d.ts.map +1 -1
- package/dist/cjs/Canvas/utils/Custom/customLines.js +73 -6
- package/dist/cjs/Canvas/utils/Custom/customLines.js.map +1 -1
- package/dist/cjs/Canvas/utils/General/batchOperations.d.ts +17 -0
- package/dist/cjs/Canvas/utils/General/batchOperations.d.ts.map +1 -0
- package/dist/cjs/Canvas/utils/General/batchOperations.js +88 -0
- package/dist/cjs/Canvas/utils/General/batchOperations.js.map +1 -0
- package/dist/cjs/Canvas/utils/General/general functions.d.ts +25 -3
- package/dist/cjs/Canvas/utils/General/general functions.d.ts.map +1 -1
- package/dist/cjs/Canvas/utils/General/general functions.js +37 -9
- package/dist/cjs/Canvas/utils/General/general functions.js.map +1 -1
- package/dist/cjs/Canvas/utils/General/imageCompression.d.ts +19 -0
- package/dist/cjs/Canvas/utils/General/imageCompression.d.ts.map +1 -0
- package/dist/cjs/Canvas/utils/General/imageCompression.js +262 -0
- package/dist/cjs/Canvas/utils/General/imageCompression.js.map +1 -0
- package/dist/cjs/Canvas/utils/General/imageStitching.d.ts +20 -0
- package/dist/cjs/Canvas/utils/General/imageStitching.d.ts.map +1 -0
- package/dist/cjs/Canvas/utils/General/imageStitching.js +227 -0
- package/dist/cjs/Canvas/utils/General/imageStitching.js.map +1 -0
- package/dist/cjs/Canvas/utils/Image/imageEffects.d.ts +37 -0
- package/dist/cjs/Canvas/utils/Image/imageEffects.d.ts.map +1 -0
- package/dist/cjs/Canvas/utils/Image/imageEffects.js +128 -0
- package/dist/cjs/Canvas/utils/Image/imageEffects.js.map +1 -0
- package/dist/cjs/Canvas/utils/Image/imageMasking.d.ts +67 -0
- package/dist/cjs/Canvas/utils/Image/imageMasking.d.ts.map +1 -0
- package/dist/cjs/Canvas/utils/Image/imageMasking.js +276 -0
- package/dist/cjs/Canvas/utils/Image/imageMasking.js.map +1 -0
- package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.d.ts.map +1 -1
- package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.js +16 -8
- package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.js.map +1 -1
- package/dist/cjs/Canvas/utils/Texts/textPathRenderer.d.ts +17 -0
- package/dist/cjs/Canvas/utils/Texts/textPathRenderer.d.ts.map +1 -0
- package/dist/cjs/Canvas/utils/Texts/textPathRenderer.js +233 -0
- package/dist/cjs/Canvas/utils/Texts/textPathRenderer.js.map +1 -0
- package/dist/cjs/Canvas/utils/types.d.ts +153 -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 +9 -2
- package/dist/cjs/Canvas/utils/utils.d.ts.map +1 -1
- package/dist/cjs/Canvas/utils/utils.js +32 -1
- package/dist/cjs/Canvas/utils/utils.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/Canvas/ApexPainter.d.ts +158 -145
- package/dist/esm/Canvas/ApexPainter.d.ts.map +1 -1
- package/dist/esm/Canvas/ApexPainter.js +1443 -418
- package/dist/esm/Canvas/ApexPainter.js.map +1 -1
- package/dist/esm/Canvas/utils/Charts/charts.d.ts +7 -2
- package/dist/esm/Canvas/utils/Charts/charts.d.ts.map +1 -1
- package/dist/esm/Canvas/utils/Charts/charts.js +3 -1
- package/dist/esm/Canvas/utils/Charts/charts.js.map +1 -1
- package/dist/esm/Canvas/utils/Custom/advancedLines.d.ts +75 -0
- package/dist/esm/Canvas/utils/Custom/advancedLines.d.ts.map +1 -0
- package/dist/esm/Canvas/utils/Custom/advancedLines.js +263 -0
- package/dist/esm/Canvas/utils/Custom/advancedLines.js.map +1 -0
- package/dist/esm/Canvas/utils/Custom/customLines.d.ts +2 -1
- package/dist/esm/Canvas/utils/Custom/customLines.d.ts.map +1 -1
- package/dist/esm/Canvas/utils/Custom/customLines.js +73 -6
- package/dist/esm/Canvas/utils/Custom/customLines.js.map +1 -1
- package/dist/esm/Canvas/utils/General/batchOperations.d.ts +17 -0
- package/dist/esm/Canvas/utils/General/batchOperations.d.ts.map +1 -0
- package/dist/esm/Canvas/utils/General/batchOperations.js +88 -0
- package/dist/esm/Canvas/utils/General/batchOperations.js.map +1 -0
- package/dist/esm/Canvas/utils/General/general functions.d.ts +25 -3
- package/dist/esm/Canvas/utils/General/general functions.d.ts.map +1 -1
- package/dist/esm/Canvas/utils/General/general functions.js +37 -9
- package/dist/esm/Canvas/utils/General/general functions.js.map +1 -1
- package/dist/esm/Canvas/utils/General/imageCompression.d.ts +19 -0
- package/dist/esm/Canvas/utils/General/imageCompression.d.ts.map +1 -0
- package/dist/esm/Canvas/utils/General/imageCompression.js +262 -0
- package/dist/esm/Canvas/utils/General/imageCompression.js.map +1 -0
- package/dist/esm/Canvas/utils/General/imageStitching.d.ts +20 -0
- package/dist/esm/Canvas/utils/General/imageStitching.d.ts.map +1 -0
- package/dist/esm/Canvas/utils/General/imageStitching.js +227 -0
- package/dist/esm/Canvas/utils/General/imageStitching.js.map +1 -0
- package/dist/esm/Canvas/utils/Image/imageEffects.d.ts +37 -0
- package/dist/esm/Canvas/utils/Image/imageEffects.d.ts.map +1 -0
- package/dist/esm/Canvas/utils/Image/imageEffects.js +128 -0
- package/dist/esm/Canvas/utils/Image/imageEffects.js.map +1 -0
- package/dist/esm/Canvas/utils/Image/imageMasking.d.ts +67 -0
- package/dist/esm/Canvas/utils/Image/imageMasking.d.ts.map +1 -0
- package/dist/esm/Canvas/utils/Image/imageMasking.js +276 -0
- package/dist/esm/Canvas/utils/Image/imageMasking.js.map +1 -0
- package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.d.ts.map +1 -1
- package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.js +16 -8
- package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.js.map +1 -1
- package/dist/esm/Canvas/utils/Texts/textPathRenderer.d.ts +17 -0
- package/dist/esm/Canvas/utils/Texts/textPathRenderer.d.ts.map +1 -0
- package/dist/esm/Canvas/utils/Texts/textPathRenderer.js +233 -0
- package/dist/esm/Canvas/utils/Texts/textPathRenderer.js.map +1 -0
- package/dist/esm/Canvas/utils/types.d.ts +153 -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 +9 -2
- package/dist/esm/Canvas/utils/utils.d.ts.map +1 -1
- package/dist/esm/Canvas/utils/utils.js +32 -1
- package/dist/esm/Canvas/utils/utils.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/Canvas/ApexPainter.ts +1327 -266
- package/lib/Canvas/utils/Charts/charts.ts +16 -7
- package/lib/Canvas/utils/Custom/advancedLines.ts +335 -0
- package/lib/Canvas/utils/Custom/customLines.ts +84 -9
- package/lib/Canvas/utils/General/batchOperations.ts +103 -0
- package/lib/Canvas/utils/General/general functions.ts +85 -41
- package/lib/Canvas/utils/General/imageCompression.ts +316 -0
- package/lib/Canvas/utils/General/imageStitching.ts +252 -0
- package/lib/Canvas/utils/Image/imageEffects.ts +175 -0
- package/lib/Canvas/utils/Image/imageMasking.ts +335 -0
- package/lib/Canvas/utils/Patterns/enhancedPatternRenderer.ts +455 -444
- package/lib/Canvas/utils/Texts/textPathRenderer.ts +320 -0
- package/lib/Canvas/utils/types.ts +156 -0
- package/lib/Canvas/utils/utils.ts +52 -2
- package/package.json +75 -35
- package/types/imgur.d.ts +65 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/Canvas/utils/utils.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/Canvas/utils/utils.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;AAKH,wCAA0I;AAkCtI,oGAlCK,wBAAmB,OAkCL;AACnB,uGAnC0B,2BAAsB,OAmC1B;AACtB,iGApCkD,qBAAgB,OAoClD;AA+BhB,gGAnEoE,oBAAe,OAmEpE;AACf,4FApEqF,gBAAW,OAoErF;AACX,2FArEkG,eAAU,OAqElG;AApEd,6DAA6J;AAyDzJ,0FAzDK,2BAAS,OAyDL;AACT,8FA1DgB,+BAAa,OA0DhB;AACb,mGA3D+B,oCAAkB,OA2D/B;AAClB,wFA5DmD,yBAAO,OA4DnD;AAAE,gGA5DmD,iCAAe,OA4DnD;AACxB,4FA7D6E,6BAAW,OA6D7E;AAEX,kGA/D0F,mCAAiB,OA+D1F;AADjB,4FA9D6G,6BAAW,OA8D7G;AA7Df,uDAAwD;AA0EpD,kGA1EK,gCAAiB,OA0EL;AAzErB,iFAAkF;AA0E9E,+GA1EK,0DAA8B,OA0EL;AAzElC,2DAA+D;AAiC3D,yFAjCK,yBAAQ,OAiCL;AACR,4FAlCe,4BAAW,OAkCf;AAjCf,mEAA4K;AAkCxK,2FAlCK,8BAAU,OAkCL;AACV,4FAnCiB,+BAAW,OAmCjB;AACX,0FApC8B,6BAAS,OAoC9B;AACT,kGArCyC,qCAAiB,OAqCzC;AACjB,2FAtC4D,8BAAU,OAsC5D;AAKV,0FA3CwE,6BAAS,OA2CxE;AADT,0FA1CmF,6BAAS,OA0CnF;AAET,6FA5C8F,gCAAY,OA4C9F;AACZ,4FA7C4G,+BAAW,OA6C5G;AACX,0FA9CyH,6BAAS,OA8CzH;AA7Cb,sDAAmD;AA2B/C,4FA3BK,yBAAW,OA2BL;AA1Bf,4CAAuE;AAqCnE,iGArCK,yBAAgB,OAqCL;AAChB,yFAtCuB,iBAAQ,OAsCvB;AACR,0FAvCiC,kBAAS,OAuCjC;AAtCb,qDAAgF;AAW5E,oFAXK,gBAAG,OAWL;AAEH,4FAbU,wBAAW,OAaV;AACX,uFAduB,mBAAM,OAcvB;AACN,wFAf+B,oBAAO,OAe/B;AACP,qFAhBwC,iBAAI,OAgBxC;AAfR,4CAA4E;AAgExE,0FAhEK,kBAAS,OAgEL;AACT,8FAjEgB,sBAAa,OAiEhB;AACb,gGAlE+B,wBAAe,OAkE/B;AAjEnB,uDAAsI;AAwElI,+FAxEK,6BAAc,OAwEL;AACd,8FAzEqB,4BAAa,OAyErB;AACb,2GA1EoC,yCAA0B,OA0EpC;AAC1B,qGA3EgE,mCAAoB,OA2EhE;AACpB,8FA5EsF,4BAAa,OA4EtF;AA3EjB,uDAA+G;AA6E3G,8FA7EK,4BAAa,OA6EL;AACb,+FA9EoB,6BAAc,OA8EpB;AACd,yGA/EoC,uCAAwB,OA+EpC;AACxB,+FAhF8D,6BAAc,OAgF9D;AA/ElB,+DAA4D;AAiFxD,iGAjFK,mCAAgB,OAiFL;AAhFpB,0DAA+J;AAkF3J,0FAlFK,yBAAS,OAkFL;AACT,2FAnFgB,0BAAU,OAmFhB;AACV,iGApF4B,gCAAgB,OAoF5B;AAChB,qGArF8C,oCAAoB,OAqF9C;AACpB,iGAtFoE,gCAAgB,OAsFpE;AAChB,iGAvFsF,gCAAgB,OAuFtF;AAChB,mGAxFwG,kCAAkB,OAwFxG;AAvFtB,+DAA6E;AAyFzE,gGAzFK,iCAAe,OAyFL;AACf,gGA1FsB,iCAAe,OA0FtB;AAzFnB,6DAAuE;AA2FnE,6FA3FK,6BAAY,OA2FL;AACZ,8FA5FmB,8BAAa,OA4FnB;AA3FjB,iEAA2E;AA6FvE,8FA7FK,gCAAa,OA6FL;AACb,+FA9FoB,iCAAc,OA8FpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../../lib/index.ts","../../lib/utils.ts","../../lib/canvas/apexpainter.ts","../../lib/canvas/utils/types.ts","../../lib/canvas/utils/utils.ts","../../lib/canvas/utils/background/bg.ts","../../lib/canvas/utils/charts/charts.ts","../../lib/canvas/utils/custom/customlines.ts","../../lib/canvas/utils/general/conversion.ts","../../lib/canvas/utils/general/general functions.ts","../../lib/canvas/utils/image/imagefilters.ts","../../lib/canvas/utils/image/imageproperties.ts","../../lib/canvas/utils/image/professionalimagefilters.ts","../../lib/canvas/utils/image/simpleprofessionalfilters.ts","../../lib/canvas/utils/patterns/enhancedpatternrenderer.ts","../../lib/canvas/utils/shapes/shapes.ts","../../lib/canvas/utils/texts/enhancedtextrenderer.ts","../../lib/canvas/utils/texts/textproperties.ts"],"version":"5.
|
|
1
|
+
{"root":["../../lib/index.ts","../../lib/utils.ts","../../lib/canvas/apexpainter.ts","../../lib/canvas/utils/types.ts","../../lib/canvas/utils/utils.ts","../../lib/canvas/utils/background/bg.ts","../../lib/canvas/utils/charts/charts.ts","../../lib/canvas/utils/custom/advancedlines.ts","../../lib/canvas/utils/custom/customlines.ts","../../lib/canvas/utils/general/batchoperations.ts","../../lib/canvas/utils/general/conversion.ts","../../lib/canvas/utils/general/general functions.ts","../../lib/canvas/utils/general/imagecompression.ts","../../lib/canvas/utils/general/imagestitching.ts","../../lib/canvas/utils/image/imageeffects.ts","../../lib/canvas/utils/image/imagefilters.ts","../../lib/canvas/utils/image/imagemasking.ts","../../lib/canvas/utils/image/imageproperties.ts","../../lib/canvas/utils/image/professionalimagefilters.ts","../../lib/canvas/utils/image/simpleprofessionalfilters.ts","../../lib/canvas/utils/patterns/enhancedpatternrenderer.ts","../../lib/canvas/utils/shapes/shapes.ts","../../lib/canvas/utils/texts/enhancedtextrenderer.ts","../../lib/canvas/utils/texts/textpathrenderer.ts","../../lib/canvas/utils/texts/textproperties.ts","../../types/imgur.d.ts"],"version":"5.9.2"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PathLike } from "fs";
|
|
2
|
-
import { OutputFormat, CanvasConfig, TextProperties, ImageProperties, GIFOptions, GIFResults, CustomOptions, cropOptions, Frame, ExtractFramesOptions, ResizeOptions, MaskOptions, BlendOptions } from "./utils/utils";
|
|
2
|
+
import { OutputFormat, CanvasConfig, TextProperties, ImageProperties, GIFOptions, GIFResults, CustomOptions, cropOptions, GradientConfig, Frame, ExtractFramesOptions, ResizeOptions, MaskOptions, BlendOptions, ImageFilter, BatchOperation, ChainOperation, StitchOptions, CollageLayout, CompressionOptions, PaletteOptions, SaveOptions, SaveResult } from "./utils/utils";
|
|
3
3
|
interface CanvasResults {
|
|
4
4
|
buffer: Buffer;
|
|
5
5
|
canvas: CanvasConfig;
|
|
@@ -7,146 +7,23 @@ interface CanvasResults {
|
|
|
7
7
|
export declare class ApexPainter {
|
|
8
8
|
#private;
|
|
9
9
|
private format?;
|
|
10
|
+
private saveCounter;
|
|
10
11
|
constructor({ type }?: OutputFormat);
|
|
11
|
-
/**
|
|
12
|
-
* Creates a canvas with the given configuration.
|
|
13
|
-
* Applies rotation, shadow, border effects, background, and stroke.
|
|
14
|
-
*
|
|
15
|
-
* @param canvas - Canvas configuration object containing:
|
|
16
|
-
* - width: Canvas width in pixels
|
|
17
|
-
* - height: Canvas height in pixels
|
|
18
|
-
* - x: X position offset (default: 0)
|
|
19
|
-
* - y: Y position offset (default: 0)
|
|
20
|
-
* - colorBg: Solid color background (hex, rgb, rgba, hsl, etc.)
|
|
21
|
-
* - gradientBg: Gradient background configuration
|
|
22
|
-
* - customBg: Custom background image buffer
|
|
23
|
-
* - zoom: Canvas zoom level (default: 1)
|
|
24
|
-
* - pattern: Pattern background configuration
|
|
25
|
-
* - noise: Noise effect configuration
|
|
26
|
-
*
|
|
27
|
-
* @returns Promise<CanvasResults> - Object containing canvas buffer and configuration
|
|
28
|
-
*
|
|
29
|
-
* @throws Error if canvas configuration is invalid or conflicting
|
|
30
|
-
*
|
|
31
|
-
* @example
|
|
32
|
-
* ```typescript
|
|
33
|
-
* const result = await painter.createCanvas({
|
|
34
|
-
* width: 800,
|
|
35
|
-
* height: 600,
|
|
36
|
-
* colorBg: '#ffffff',
|
|
37
|
-
* zoom: 1.5
|
|
38
|
-
* });
|
|
39
|
-
* const buffer = result.buffer;
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
12
|
createCanvas(canvas: CanvasConfig): Promise<CanvasResults>;
|
|
43
|
-
/**
|
|
44
|
-
* Draws one or more images (or shapes) on an existing canvas buffer.
|
|
45
|
-
*
|
|
46
|
-
* @param images - Single ImageProperties object or array of ImageProperties containing:
|
|
47
|
-
* - source: Image path/URL/Buffer or ShapeType ('rectangle', 'circle', etc.)
|
|
48
|
-
* - x: X position on canvas
|
|
49
|
-
* - y: Y position on canvas
|
|
50
|
-
* - width: Image/shape width (optional, defaults to original size)
|
|
51
|
-
* - height: Image/shape height (optional, defaults to original size)
|
|
52
|
-
* - inherit: Use original image dimensions (boolean)
|
|
53
|
-
* - fit: Image fitting mode ('fill', 'contain', 'cover', 'scale-down', 'none')
|
|
54
|
-
* - align: Image alignment ('center', 'start', 'end')
|
|
55
|
-
* - rotation: Rotation angle in degrees (default: 0)
|
|
56
|
-
* - opacity: Opacity level 0-1 (default: 1)
|
|
57
|
-
* - blur: Blur radius in pixels (default: 0)
|
|
58
|
-
* - borderRadius: Border radius or 'circular' (default: 0)
|
|
59
|
-
* - borderPosition: Border position ('all', 'top', 'bottom', 'left', 'right')
|
|
60
|
-
* - filters: Array of image filters to apply
|
|
61
|
-
* - shape: Shape properties (when source is a shape)
|
|
62
|
-
* - shadow: Shadow configuration
|
|
63
|
-
* - stroke: Stroke configuration
|
|
64
|
-
* - boxBackground: Background behind image/shape
|
|
65
|
-
*
|
|
66
|
-
* @param canvasBuffer - Existing canvas buffer (Buffer) or CanvasResults object
|
|
67
|
-
*
|
|
68
|
-
* @returns Promise<Buffer> - Updated canvas buffer in PNG format
|
|
69
|
-
*
|
|
70
|
-
* @throws Error if source, x, or y are missing
|
|
71
|
-
*
|
|
72
|
-
* @example
|
|
73
|
-
* ```typescript
|
|
74
|
-
* const result = await painter.createImage([
|
|
75
|
-
* {
|
|
76
|
-
* source: 'rectangle',
|
|
77
|
-
* x: 100, y: 100,
|
|
78
|
-
* width: 200, height: 150,
|
|
79
|
-
* shape: { fill: true, color: '#ff6b6b' },
|
|
80
|
-
* shadow: { color: 'rgba(0,0,0,0.3)', offsetX: 5, offsetY: 5, blur: 10 }
|
|
81
|
-
* }
|
|
82
|
-
* ], canvasBuffer);
|
|
83
|
-
* ```
|
|
84
|
-
*/
|
|
85
13
|
createImage(images: ImageProperties | ImageProperties[], canvasBuffer: CanvasResults | Buffer): Promise<Buffer>;
|
|
86
|
-
/**
|
|
87
|
-
* Creates text on an existing canvas buffer with enhanced styling options.
|
|
88
|
-
*
|
|
89
|
-
* @param textArray - Single TextProperties object or array of TextProperties containing:
|
|
90
|
-
* - text: Text content to render (required)
|
|
91
|
-
* - x: X position on canvas (required)
|
|
92
|
-
* - y: Y position on canvas (required)
|
|
93
|
-
* - fontPath: Path to custom font file (.ttf, .otf, .woff, etc.)
|
|
94
|
-
* - fontName: Custom font name (used with fontPath)
|
|
95
|
-
* - fontSize: Font size in pixels (default: 16)
|
|
96
|
-
* - fontFamily: Font family name (e.g., 'Arial', 'Helvetica')
|
|
97
|
-
* - bold: Make text bold (boolean)
|
|
98
|
-
* - italic: Make text italic (boolean)
|
|
99
|
-
* - underline: Add underline decoration (boolean)
|
|
100
|
-
* - overline: Add overline decoration (boolean)
|
|
101
|
-
* - strikethrough: Add strikethrough decoration (boolean)
|
|
102
|
-
* - highlight: Highlight text with background color and opacity
|
|
103
|
-
* - lineHeight: Line height multiplier (default: 1.4)
|
|
104
|
-
* - letterSpacing: Space between letters in pixels
|
|
105
|
-
* - wordSpacing: Space between words in pixels
|
|
106
|
-
* - maxWidth: Maximum width for text wrapping
|
|
107
|
-
* - maxHeight: Maximum height for text (truncates with ellipsis)
|
|
108
|
-
* - textAlign: Horizontal text alignment ('left', 'center', 'right', 'start', 'end')
|
|
109
|
-
* - textBaseline: Vertical text baseline ('alphabetic', 'bottom', 'hanging', 'ideographic', 'middle', 'top')
|
|
110
|
-
* - color: Text color (hex, rgb, rgba, hsl, etc.)
|
|
111
|
-
* - gradient: Gradient fill for text
|
|
112
|
-
* - opacity: Text opacity (0-1, default: 1)
|
|
113
|
-
* - glow: Text glow effect with color, intensity, and opacity
|
|
114
|
-
* - shadow: Text shadow effect with color, offset, blur, and opacity
|
|
115
|
-
* - stroke: Text stroke/outline with color, width, gradient, and opacity
|
|
116
|
-
* - rotation: Text rotation in degrees
|
|
117
|
-
*
|
|
118
|
-
* @param canvasBuffer - Existing canvas buffer (Buffer) or CanvasResults object
|
|
119
|
-
*
|
|
120
|
-
* @returns Promise<Buffer> - Updated canvas buffer in PNG format
|
|
121
|
-
*
|
|
122
|
-
* @throws Error if text, x, or y are missing, or if canvas buffer is invalid
|
|
123
|
-
*
|
|
124
|
-
* @example
|
|
125
|
-
* ```typescript
|
|
126
|
-
* const result = await painter.createText([
|
|
127
|
-
* {
|
|
128
|
-
* text: "Hello World!",
|
|
129
|
-
* x: 100, y: 100,
|
|
130
|
-
* fontSize: 24,
|
|
131
|
-
* bold: true,
|
|
132
|
-
* color: '#ff6b6b',
|
|
133
|
-
* shadow: { color: 'rgba(0,0,0,0.3)', offsetX: 2, offsetY: 2, blur: 4 },
|
|
134
|
-
* underline: true,
|
|
135
|
-
* highlight: { color: '#ffff00', opacity: 0.3 }
|
|
136
|
-
* }
|
|
137
|
-
* ], canvasBuffer);
|
|
138
|
-
* ```
|
|
139
|
-
*/
|
|
140
14
|
createText(textArray: TextProperties | TextProperties[], canvasBuffer: CanvasResults | Buffer): Promise<Buffer>;
|
|
141
|
-
createCustom(options: CustomOptions[], buffer: CanvasResults | Buffer): Promise<Buffer>;
|
|
15
|
+
createCustom(options: CustomOptions | CustomOptions[], buffer: CanvasResults | Buffer): Promise<Buffer>;
|
|
142
16
|
createGIF(gifFrames: {
|
|
143
17
|
background: string;
|
|
144
18
|
duration: number;
|
|
145
|
-
}[], options: GIFOptions): Promise<GIFResults |
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
19
|
+
}[], options: GIFOptions): Promise<GIFResults | Buffer | string | Array<{
|
|
20
|
+
attachment: NodeJS.ReadableStream | any;
|
|
21
|
+
name: string;
|
|
22
|
+
}> | undefined>;
|
|
23
|
+
resize(resizeOptions: ResizeOptions): Promise<Buffer>;
|
|
24
|
+
imgConverter(source: string, newExtension: string): Promise<Buffer>;
|
|
25
|
+
effects(source: string, filters: ImageFilter[]): Promise<Buffer>;
|
|
26
|
+
colorsFilter(source: string, filterColor: string | GradientConfig, opacity?: number): Promise<Buffer>;
|
|
150
27
|
colorAnalysis(source: string): Promise<{
|
|
151
28
|
color: string;
|
|
152
29
|
frequency: string;
|
|
@@ -155,24 +32,26 @@ export declare class ApexPainter {
|
|
|
155
32
|
red: number;
|
|
156
33
|
green: number;
|
|
157
34
|
blue: number;
|
|
158
|
-
}): Promise<Buffer
|
|
159
|
-
removeBackground(imageURL: string, apiKey: string): Promise<Buffer
|
|
160
|
-
blend(layers: {
|
|
35
|
+
}): Promise<Buffer | undefined>;
|
|
36
|
+
removeBackground(imageURL: string, apiKey: string): Promise<Buffer | undefined>;
|
|
37
|
+
blend(layers: Array<{
|
|
161
38
|
image: string | Buffer;
|
|
162
|
-
blendMode:
|
|
39
|
+
blendMode: GlobalCompositeOperation;
|
|
163
40
|
position?: {
|
|
164
41
|
x: number;
|
|
165
42
|
y: number;
|
|
166
43
|
};
|
|
167
44
|
opacity?: number;
|
|
168
|
-
}
|
|
169
|
-
createChart(data:
|
|
45
|
+
}>, baseImageBuffer: Buffer, defaultBlendMode?: GlobalCompositeOperation): Promise<Buffer>;
|
|
46
|
+
createChart(data: unknown, type: {
|
|
170
47
|
chartType: string;
|
|
171
48
|
chartNumber: number;
|
|
172
|
-
}): Promise<Buffer
|
|
49
|
+
}): Promise<Buffer>;
|
|
173
50
|
cropImage(options: cropOptions): Promise<Buffer>;
|
|
174
|
-
|
|
175
|
-
|
|
51
|
+
extractFrames(videoSource: string | Buffer, options: ExtractFramesOptions): Promise<Array<{
|
|
52
|
+
source: string;
|
|
53
|
+
isRemote: boolean;
|
|
54
|
+
}>>;
|
|
176
55
|
masking(source: string | Buffer | PathLike | Uint8Array, maskSource: string | Buffer | PathLike | Uint8Array, options?: MaskOptions): Promise<Buffer>;
|
|
177
56
|
gradientBlend(source: string | Buffer | PathLike | Uint8Array, options: BlendOptions): Promise<Buffer>;
|
|
178
57
|
animate(frames: Frame[], defaultDuration: number, defaultWidth?: number, defaultHeight?: number, options?: {
|
|
@@ -182,8 +61,142 @@ export declare class ApexPainter {
|
|
|
182
61
|
onFrame?: (index: number) => void;
|
|
183
62
|
onEnd?: () => void;
|
|
184
63
|
}): Promise<Buffer[] | undefined>;
|
|
185
|
-
|
|
186
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Processes multiple operations in parallel
|
|
66
|
+
* @param operations - Array of operations to process
|
|
67
|
+
* @returns Array of result buffers
|
|
68
|
+
*/
|
|
69
|
+
batch(operations: BatchOperation[]): Promise<Buffer[]>;
|
|
70
|
+
/**
|
|
71
|
+
* Chains multiple operations sequentially
|
|
72
|
+
* @param operations - Array of operations to chain
|
|
73
|
+
* @returns Final result buffer
|
|
74
|
+
*/
|
|
75
|
+
chain(operations: ChainOperation[]): Promise<Buffer>;
|
|
76
|
+
/**
|
|
77
|
+
* Stitches multiple images together
|
|
78
|
+
* @param images - Array of image sources
|
|
79
|
+
* @param options - Stitching options
|
|
80
|
+
* @returns Stitched image buffer
|
|
81
|
+
*/
|
|
82
|
+
stitchImages(images: Array<string | Buffer>, options?: StitchOptions): Promise<Buffer>;
|
|
83
|
+
/**
|
|
84
|
+
* Creates an image collage
|
|
85
|
+
* @param images - Array of image sources with optional dimensions
|
|
86
|
+
* @param layout - Collage layout configuration
|
|
87
|
+
* @returns Collage image buffer
|
|
88
|
+
*/
|
|
89
|
+
createCollage(images: Array<{
|
|
90
|
+
source: string | Buffer;
|
|
91
|
+
width?: number;
|
|
92
|
+
height?: number;
|
|
93
|
+
}>, layout: CollageLayout): Promise<Buffer>;
|
|
94
|
+
/**
|
|
95
|
+
* Compresses an image with quality control
|
|
96
|
+
* @param image - Image source (path, URL, or Buffer)
|
|
97
|
+
* @param options - Compression options
|
|
98
|
+
* @returns Compressed image buffer
|
|
99
|
+
*/
|
|
100
|
+
compress(image: string | Buffer, options?: CompressionOptions): Promise<Buffer>;
|
|
101
|
+
/**
|
|
102
|
+
* Extracts color palette from an image
|
|
103
|
+
* @param image - Image source (path, URL, or Buffer)
|
|
104
|
+
* @param options - Palette extraction options
|
|
105
|
+
* @returns Array of colors with percentages
|
|
106
|
+
*/
|
|
107
|
+
extractPalette(image: string | Buffer, options?: PaletteOptions): Promise<Array<{
|
|
108
|
+
color: string;
|
|
109
|
+
percentage: number;
|
|
110
|
+
}>>;
|
|
111
|
+
/**
|
|
112
|
+
* Validates a hexadecimal color string.
|
|
113
|
+
* @param hexColor - Hexadecimal color string to validate (format: #RRGGBB)
|
|
114
|
+
* @returns True if the color is valid
|
|
115
|
+
* @throws Error if the color format is invalid
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* painter.validHex('#ff0000'); // true
|
|
120
|
+
* painter.validHex('#FF00FF'); // true
|
|
121
|
+
* painter.validHex('invalid'); // throws Error
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
validHex(hexColor: string): boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Converts results to the configured output format.
|
|
127
|
+
* @param results - Buffer or result to convert
|
|
128
|
+
* @returns Converted result in the configured format
|
|
129
|
+
* @throws Error if format is unsupported or conversion fails
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```typescript
|
|
133
|
+
* const painter = new ApexPainter({ type: 'base64' });
|
|
134
|
+
* const result = await painter.createCanvas({ width: 100, height: 100 });
|
|
135
|
+
* const base64String = await painter.outPut(result.buffer); // Returns base64 string
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
outPut(results: Buffer): Promise<Buffer | string | Blob | ArrayBuffer>;
|
|
139
|
+
/**
|
|
140
|
+
* Advanced save method to save buffers to local files with extensive customization options.
|
|
141
|
+
*
|
|
142
|
+
* @param buffer - Buffer to save (from createCanvas, createImage, createText, etc.)
|
|
143
|
+
* @param options - Save options for file path, format, naming, etc.
|
|
144
|
+
* @returns SaveResult with file path, name, size, and format
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* // Simple save with auto-generated name
|
|
149
|
+
* const canvas = await painter.createCanvas({ width: 800, height: 600 });
|
|
150
|
+
* const result = await painter.save(canvas.buffer);
|
|
151
|
+
* // Saves to: ./ApexPainter_output/20241220_143025_123.png
|
|
152
|
+
*
|
|
153
|
+
* // Custom filename and directory
|
|
154
|
+
* await painter.save(canvas.buffer, {
|
|
155
|
+
* directory: './my-images',
|
|
156
|
+
* filename: 'my-canvas',
|
|
157
|
+
* format: 'jpg',
|
|
158
|
+
* quality: 95
|
|
159
|
+
* });
|
|
160
|
+
*
|
|
161
|
+
* // Save with counter naming
|
|
162
|
+
* await painter.save(canvas.buffer, {
|
|
163
|
+
* naming: 'counter',
|
|
164
|
+
* prefix: 'image-',
|
|
165
|
+
* counterStart: 1
|
|
166
|
+
* });
|
|
167
|
+
* // Saves to: ./ApexPainter_output/image-1.png, image-2.png, etc.
|
|
168
|
+
*
|
|
169
|
+
* // Save multiple buffers
|
|
170
|
+
* const buffers = [canvas1.buffer, canvas2.buffer, canvas3.buffer];
|
|
171
|
+
* const results = await painter.saveMultiple(buffers, {
|
|
172
|
+
* prefix: 'batch-',
|
|
173
|
+
* naming: 'counter'
|
|
174
|
+
* });
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
save(buffer: Buffer, options?: SaveOptions): Promise<SaveResult>;
|
|
178
|
+
/**
|
|
179
|
+
* Save multiple buffers at once with batch options.
|
|
180
|
+
*
|
|
181
|
+
* @param buffers - Array of buffers to save
|
|
182
|
+
* @param options - Save options (applied to all files)
|
|
183
|
+
* @returns Array of SaveResult objects
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```typescript
|
|
187
|
+
* const canvas1 = await painter.createCanvas({ width: 800, height: 600 });
|
|
188
|
+
* const canvas2 = await painter.createCanvas({ width: 800, height: 600 });
|
|
189
|
+
* const results = await painter.saveMultiple([canvas1.buffer, canvas2.buffer], {
|
|
190
|
+
* prefix: 'batch-',
|
|
191
|
+
* naming: 'counter'
|
|
192
|
+
* });
|
|
193
|
+
* ```
|
|
194
|
+
*/
|
|
195
|
+
saveMultiple(buffers: Buffer[], options?: SaveOptions): Promise<SaveResult[]>;
|
|
196
|
+
/**
|
|
197
|
+
* Reset the save counter (useful when using 'counter' naming).
|
|
198
|
+
*/
|
|
199
|
+
resetSaveCounter(): void;
|
|
187
200
|
}
|
|
188
201
|
export {};
|
|
189
202
|
//# sourceMappingURL=ApexPainter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApexPainter.d.ts","sourceRoot":"","sources":["../../../lib/Canvas/ApexPainter.ts"],"names":[],"mappings":"AAKA,OAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"ApexPainter.d.ts","sourceRoot":"","sources":["../../../lib/Canvas/ApexPainter.ts"],"names":[],"mappings":"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"}
|