apexify.js 4.9.30 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +56 -1
  2. package/dist/cjs/Canvas/ApexPainter.d.ts +96 -145
  3. package/dist/cjs/Canvas/ApexPainter.d.ts.map +1 -1
  4. package/dist/cjs/Canvas/ApexPainter.js +1247 -418
  5. package/dist/cjs/Canvas/ApexPainter.js.map +1 -1
  6. package/dist/cjs/Canvas/utils/Charts/charts.d.ts +7 -2
  7. package/dist/cjs/Canvas/utils/Charts/charts.d.ts.map +1 -1
  8. package/dist/cjs/Canvas/utils/Charts/charts.js +3 -1
  9. package/dist/cjs/Canvas/utils/Charts/charts.js.map +1 -1
  10. package/dist/cjs/Canvas/utils/Custom/advancedLines.d.ts +75 -0
  11. package/dist/cjs/Canvas/utils/Custom/advancedLines.d.ts.map +1 -0
  12. package/dist/cjs/Canvas/utils/Custom/advancedLines.js +263 -0
  13. package/dist/cjs/Canvas/utils/Custom/advancedLines.js.map +1 -0
  14. package/dist/cjs/Canvas/utils/Custom/customLines.d.ts +2 -1
  15. package/dist/cjs/Canvas/utils/Custom/customLines.d.ts.map +1 -1
  16. package/dist/cjs/Canvas/utils/Custom/customLines.js +73 -6
  17. package/dist/cjs/Canvas/utils/Custom/customLines.js.map +1 -1
  18. package/dist/cjs/Canvas/utils/General/batchOperations.d.ts +17 -0
  19. package/dist/cjs/Canvas/utils/General/batchOperations.d.ts.map +1 -0
  20. package/dist/cjs/Canvas/utils/General/batchOperations.js +88 -0
  21. package/dist/cjs/Canvas/utils/General/batchOperations.js.map +1 -0
  22. package/dist/cjs/Canvas/utils/General/general functions.d.ts +25 -3
  23. package/dist/cjs/Canvas/utils/General/general functions.d.ts.map +1 -1
  24. package/dist/cjs/Canvas/utils/General/general functions.js +37 -9
  25. package/dist/cjs/Canvas/utils/General/general functions.js.map +1 -1
  26. package/dist/cjs/Canvas/utils/General/imageCompression.d.ts +19 -0
  27. package/dist/cjs/Canvas/utils/General/imageCompression.d.ts.map +1 -0
  28. package/dist/cjs/Canvas/utils/General/imageCompression.js +262 -0
  29. package/dist/cjs/Canvas/utils/General/imageCompression.js.map +1 -0
  30. package/dist/cjs/Canvas/utils/General/imageStitching.d.ts +20 -0
  31. package/dist/cjs/Canvas/utils/General/imageStitching.d.ts.map +1 -0
  32. package/dist/cjs/Canvas/utils/General/imageStitching.js +227 -0
  33. package/dist/cjs/Canvas/utils/General/imageStitching.js.map +1 -0
  34. package/dist/cjs/Canvas/utils/Image/imageEffects.d.ts +37 -0
  35. package/dist/cjs/Canvas/utils/Image/imageEffects.d.ts.map +1 -0
  36. package/dist/cjs/Canvas/utils/Image/imageEffects.js +128 -0
  37. package/dist/cjs/Canvas/utils/Image/imageEffects.js.map +1 -0
  38. package/dist/cjs/Canvas/utils/Image/imageMasking.d.ts +67 -0
  39. package/dist/cjs/Canvas/utils/Image/imageMasking.d.ts.map +1 -0
  40. package/dist/cjs/Canvas/utils/Image/imageMasking.js +276 -0
  41. package/dist/cjs/Canvas/utils/Image/imageMasking.js.map +1 -0
  42. package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.d.ts.map +1 -1
  43. package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.js +16 -8
  44. package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.js.map +1 -1
  45. package/dist/cjs/Canvas/utils/Texts/textPathRenderer.d.ts +17 -0
  46. package/dist/cjs/Canvas/utils/Texts/textPathRenderer.d.ts.map +1 -0
  47. package/dist/cjs/Canvas/utils/Texts/textPathRenderer.js +233 -0
  48. package/dist/cjs/Canvas/utils/Texts/textPathRenderer.js.map +1 -0
  49. package/dist/cjs/Canvas/utils/types.d.ts +121 -0
  50. package/dist/cjs/Canvas/utils/types.d.ts.map +1 -1
  51. package/dist/cjs/Canvas/utils/types.js.map +1 -1
  52. package/dist/cjs/Canvas/utils/utils.d.ts +9 -2
  53. package/dist/cjs/Canvas/utils/utils.d.ts.map +1 -1
  54. package/dist/cjs/Canvas/utils/utils.js +32 -1
  55. package/dist/cjs/Canvas/utils/utils.js.map +1 -1
  56. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  57. package/dist/esm/Canvas/ApexPainter.d.ts +96 -145
  58. package/dist/esm/Canvas/ApexPainter.d.ts.map +1 -1
  59. package/dist/esm/Canvas/ApexPainter.js +1247 -418
  60. package/dist/esm/Canvas/ApexPainter.js.map +1 -1
  61. package/dist/esm/Canvas/utils/Charts/charts.d.ts +7 -2
  62. package/dist/esm/Canvas/utils/Charts/charts.d.ts.map +1 -1
  63. package/dist/esm/Canvas/utils/Charts/charts.js +3 -1
  64. package/dist/esm/Canvas/utils/Charts/charts.js.map +1 -1
  65. package/dist/esm/Canvas/utils/Custom/advancedLines.d.ts +75 -0
  66. package/dist/esm/Canvas/utils/Custom/advancedLines.d.ts.map +1 -0
  67. package/dist/esm/Canvas/utils/Custom/advancedLines.js +263 -0
  68. package/dist/esm/Canvas/utils/Custom/advancedLines.js.map +1 -0
  69. package/dist/esm/Canvas/utils/Custom/customLines.d.ts +2 -1
  70. package/dist/esm/Canvas/utils/Custom/customLines.d.ts.map +1 -1
  71. package/dist/esm/Canvas/utils/Custom/customLines.js +73 -6
  72. package/dist/esm/Canvas/utils/Custom/customLines.js.map +1 -1
  73. package/dist/esm/Canvas/utils/General/batchOperations.d.ts +17 -0
  74. package/dist/esm/Canvas/utils/General/batchOperations.d.ts.map +1 -0
  75. package/dist/esm/Canvas/utils/General/batchOperations.js +88 -0
  76. package/dist/esm/Canvas/utils/General/batchOperations.js.map +1 -0
  77. package/dist/esm/Canvas/utils/General/general functions.d.ts +25 -3
  78. package/dist/esm/Canvas/utils/General/general functions.d.ts.map +1 -1
  79. package/dist/esm/Canvas/utils/General/general functions.js +37 -9
  80. package/dist/esm/Canvas/utils/General/general functions.js.map +1 -1
  81. package/dist/esm/Canvas/utils/General/imageCompression.d.ts +19 -0
  82. package/dist/esm/Canvas/utils/General/imageCompression.d.ts.map +1 -0
  83. package/dist/esm/Canvas/utils/General/imageCompression.js +262 -0
  84. package/dist/esm/Canvas/utils/General/imageCompression.js.map +1 -0
  85. package/dist/esm/Canvas/utils/General/imageStitching.d.ts +20 -0
  86. package/dist/esm/Canvas/utils/General/imageStitching.d.ts.map +1 -0
  87. package/dist/esm/Canvas/utils/General/imageStitching.js +227 -0
  88. package/dist/esm/Canvas/utils/General/imageStitching.js.map +1 -0
  89. package/dist/esm/Canvas/utils/Image/imageEffects.d.ts +37 -0
  90. package/dist/esm/Canvas/utils/Image/imageEffects.d.ts.map +1 -0
  91. package/dist/esm/Canvas/utils/Image/imageEffects.js +128 -0
  92. package/dist/esm/Canvas/utils/Image/imageEffects.js.map +1 -0
  93. package/dist/esm/Canvas/utils/Image/imageMasking.d.ts +67 -0
  94. package/dist/esm/Canvas/utils/Image/imageMasking.d.ts.map +1 -0
  95. package/dist/esm/Canvas/utils/Image/imageMasking.js +276 -0
  96. package/dist/esm/Canvas/utils/Image/imageMasking.js.map +1 -0
  97. package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.d.ts.map +1 -1
  98. package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.js +16 -8
  99. package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.js.map +1 -1
  100. package/dist/esm/Canvas/utils/Texts/textPathRenderer.d.ts +17 -0
  101. package/dist/esm/Canvas/utils/Texts/textPathRenderer.d.ts.map +1 -0
  102. package/dist/esm/Canvas/utils/Texts/textPathRenderer.js +233 -0
  103. package/dist/esm/Canvas/utils/Texts/textPathRenderer.js.map +1 -0
  104. package/dist/esm/Canvas/utils/types.d.ts +121 -0
  105. package/dist/esm/Canvas/utils/types.d.ts.map +1 -1
  106. package/dist/esm/Canvas/utils/types.js.map +1 -1
  107. package/dist/esm/Canvas/utils/utils.d.ts +9 -2
  108. package/dist/esm/Canvas/utils/utils.d.ts.map +1 -1
  109. package/dist/esm/Canvas/utils/utils.js +32 -1
  110. package/dist/esm/Canvas/utils/utils.js.map +1 -1
  111. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  112. package/lib/Canvas/ApexPainter.ts +1118 -266
  113. package/lib/Canvas/utils/Charts/charts.ts +16 -7
  114. package/lib/Canvas/utils/Custom/advancedLines.ts +335 -0
  115. package/lib/Canvas/utils/Custom/customLines.ts +84 -9
  116. package/lib/Canvas/utils/General/batchOperations.ts +103 -0
  117. package/lib/Canvas/utils/General/general functions.ts +85 -41
  118. package/lib/Canvas/utils/General/imageCompression.ts +316 -0
  119. package/lib/Canvas/utils/General/imageStitching.ts +252 -0
  120. package/lib/Canvas/utils/Image/imageEffects.ts +175 -0
  121. package/lib/Canvas/utils/Image/imageMasking.ts +335 -0
  122. package/lib/Canvas/utils/Patterns/enhancedPatternRenderer.ts +455 -444
  123. package/lib/Canvas/utils/Texts/textPathRenderer.ts +320 -0
  124. package/lib/Canvas/utils/types.ts +121 -0
  125. package/lib/Canvas/utils/utils.ts +49 -2
  126. package/package.json +69 -34
package/README.md CHANGED
@@ -19,13 +19,22 @@
19
19
 
20
20
  ### 🖼️ **Advanced Image Processing**
21
21
  - **Professional Filters**: 22+ filters including blur, sharpen, vintage, cinematic effects
22
+ - **Image Masking**: Apply masks with alpha, luminance, or inverse modes
23
+ - **Image Distortion**: Perspective, bulge, pinch, and mesh warping effects
24
+ - **Effects Stack**: Vignette, lens flare, chromatic aberration, film grain
22
25
  - **Shape Drawing**: 8+ shapes (rectangle, circle, heart, star, polygon, etc.)
23
26
  - **Gradient Support**: Linear and radial gradients for fills and strokes
24
27
  - **Shadow & Stroke Effects**: Customizable shadows and strokes for all shapes
25
28
  - **Rotation & Positioning**: Full control over image placement and rotation
29
+ - **Image Stitching**: Combine multiple images into panoramas or grids
30
+ - **Collage Maker**: Create beautiful collages with multiple layout options
31
+ - **Image Compression**: Optimize images with quality control (JPEG, WebP, AVIF)
32
+ - **Color Palette Extraction**: Extract color palettes using multiple algorithms
26
33
 
27
34
  ### 🎨 **Rich Background System**
28
35
  - **Multiple Background Types**: Solid colors, gradients, custom images
36
+ - **Video Backgrounds**: Extract frames from videos for dynamic backgrounds
37
+ - **Background Filters**: Apply filters directly to background images
29
38
  - **Pattern Overlays**: 12+ built-in patterns (grid, dots, stripes, hexagons, etc.)
30
39
  - **Custom Patterns**: Use your own images as repeating patterns
31
40
  - **Blend Modes**: 11+ blend modes for professional compositing
@@ -33,18 +42,28 @@
33
42
 
34
43
  ### 📝 **Enhanced Text Rendering**
35
44
  - **Font Management**: Custom fonts, sizes, families, and styles
45
+ - **Text on Paths**: Render text along curves (line, arc, bezier, quadratic)
36
46
  - **Text Decorations**: Bold, italic, underline, overline, strikethrough, highlight
37
47
  - **Advanced Effects**: Glow, shadow, stroke with gradient support
38
48
  - **Spacing Control**: Letter spacing, word spacing, line height
39
49
  - **Text Wrapping**: Automatic text wrapping with size constraints
40
50
  - **Rotation**: Full 360° text rotation support
41
51
 
52
+ ### 🎯 **Advanced Custom Lines**
53
+ - **Smooth Paths**: Bezier, Catmull-Rom, and smooth interpolation
54
+ - **Arrow Markers**: Customizable start/end arrows with multiple styles
55
+ - **Path Markers**: Add markers at any position along paths
56
+ - **Line Patterns**: Dots, dashes, and custom pattern segments
57
+ - **Line Textures**: Apply texture images to lines
58
+
42
59
  ### 🔧 **Professional Tools**
43
60
  - **Chart Generation**: Bar charts, pie charts, line charts
44
61
  - **GIF Creation**: Animated GIFs from image sequences
45
- - **Format Conversion**: Convert between PNG, JPEG, WebP, and more
62
+ - **Format Conversion**: Convert between PNG, JPEG, WebP, AVIF, and more
46
63
  - **Image Manipulation**: Crop, resize, background removal
47
64
  - **Color Detection**: Extract and analyze colors from images
65
+ - **Batch Operations**: Process multiple operations in parallel
66
+ - **Chain Operations**: Chain operations sequentially for complex workflows
48
67
 
49
68
  ---
50
69
 
@@ -602,6 +621,42 @@ This allows you to add multiple elements in one call for better performance and
602
621
 
603
622
  ---
604
623
 
624
+ ## 🆕 What's New in v4.9.30
625
+
626
+ ### 🎉 Major Feature Release
627
+
628
+ #### Background Enhancements
629
+ - ✨ **Video Backgrounds**: Use video frames as dynamic backgrounds
630
+ - 🎨 **Background Filters**: Apply filters directly to background images
631
+ - 🔧 **Background Opacity**: Control transparency of background images
632
+
633
+ #### Image Processing
634
+ - 🎭 **Image Masking**: Apply masks with multiple modes (alpha, luminance, inverse)
635
+ - 🔄 **Image Distortion**: Perspective, bulge, pinch, and mesh warping
636
+ - ✨ **Effects Stack**: Vignette, lens flare, chromatic aberration, film grain
637
+ - 🎛️ **Enhanced Filters**: Filter intensity and order control
638
+
639
+ #### Text Features
640
+ - 📐 **Text on Paths**: Render text along curves and custom paths
641
+
642
+ #### Custom Lines
643
+ - ➡️ **Arrow Markers**: Start/end arrows with customizable styles
644
+ - 📍 **Path Markers**: Add markers at any position along paths
645
+ - 🎨 **Line Patterns**: Dots, dashes, and custom patterns
646
+ - 🖼️ **Line Textures**: Apply texture images to lines
647
+
648
+ #### New Utilities
649
+ - ⚡ **Batch Operations**: Process multiple operations in parallel
650
+ - 🔗 **Chain Operations**: Chain operations sequentially
651
+ - 🖼️ **Image Stitching**: Combine images into panoramas
652
+ - 🎨 **Collage Maker**: Create beautiful image collages
653
+ - 📦 **Image Compression**: Optimize images with quality control
654
+ - 🎨 **Color Palette Extraction**: Extract color palettes from images
655
+
656
+ See [CHANGELOG.md](CHANGELOG.md) for complete details.
657
+
658
+ ---
659
+
605
660
  ## 🤝 Contributing
606
661
 
607
662
  We welcome contributions! Here's how you can help:
@@ -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 } from "./utils/utils";
3
3
  interface CanvasResults {
4
4
  buffer: Buffer;
5
5
  canvas: CanvasConfig;
@@ -8,145 +8,21 @@ export declare class ApexPainter {
8
8
  #private;
9
9
  private format?;
10
10
  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
11
  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
12
  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
13
  createText(textArray: TextProperties | TextProperties[], canvasBuffer: CanvasResults | Buffer): Promise<Buffer>;
141
- createCustom(options: CustomOptions[], buffer: CanvasResults | Buffer): Promise<Buffer>;
14
+ createCustom(options: CustomOptions | CustomOptions[], buffer: CanvasResults | Buffer): Promise<Buffer>;
142
15
  createGIF(gifFrames: {
143
16
  background: string;
144
17
  duration: number;
145
- }[], options: GIFOptions): Promise<GIFResults | any>;
146
- resize(resizeOptions: ResizeOptions): Promise<Buffer<ArrayBufferLike>>;
147
- imgConverter(source: string, newExtension: string): Promise<Buffer<ArrayBufferLike>>;
148
- effects(source: string, filters: any[]): Promise<Buffer<ArrayBufferLike>>;
149
- colorsFilter(source: string, filterColor: any, opacity?: number): Promise<any>;
18
+ }[], options: GIFOptions): Promise<GIFResults | Buffer | string | Array<{
19
+ attachment: NodeJS.ReadableStream | any;
20
+ name: string;
21
+ }> | undefined>;
22
+ resize(resizeOptions: ResizeOptions): Promise<Buffer>;
23
+ imgConverter(source: string, newExtension: string): Promise<Buffer>;
24
+ effects(source: string, filters: ImageFilter[]): Promise<Buffer>;
25
+ colorsFilter(source: string, filterColor: string | GradientConfig, opacity?: number): Promise<Buffer>;
150
26
  colorAnalysis(source: string): Promise<{
151
27
  color: string;
152
28
  frequency: string;
@@ -155,24 +31,26 @@ export declare class ApexPainter {
155
31
  red: number;
156
32
  green: number;
157
33
  blue: number;
158
- }): Promise<Buffer<ArrayBufferLike> | undefined>;
159
- removeBackground(imageURL: string, apiKey: string): Promise<Buffer<ArrayBufferLike> | undefined>;
160
- blend(layers: {
34
+ }): Promise<Buffer | undefined>;
35
+ removeBackground(imageURL: string, apiKey: string): Promise<Buffer | undefined>;
36
+ blend(layers: Array<{
161
37
  image: string | Buffer;
162
- blendMode: 'source-over' | 'source-in' | 'source-out' | 'source-atop' | 'destination-over' | 'destination-in' | 'destination-out' | 'destination-atop' | 'lighter' | 'copy' | 'xor' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity';
38
+ blendMode: GlobalCompositeOperation;
163
39
  position?: {
164
40
  x: number;
165
41
  y: number;
166
42
  };
167
43
  opacity?: number;
168
- }[], baseImageBuffer: Buffer, defaultBlendMode?: 'source-over' | 'source-in' | 'source-out' | 'source-atop' | 'destination-over' | 'destination-in' | 'destination-out' | 'destination-atop' | 'lighter' | 'copy' | 'xor' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity'): Promise<Buffer>;
169
- createChart(data: any, type: {
44
+ }>, baseImageBuffer: Buffer, defaultBlendMode?: GlobalCompositeOperation): Promise<Buffer>;
45
+ createChart(data: unknown, type: {
170
46
  chartType: string;
171
47
  chartNumber: number;
172
- }): Promise<Buffer<ArrayBufferLike> | undefined>;
48
+ }): Promise<Buffer>;
173
49
  cropImage(options: cropOptions): Promise<Buffer>;
174
- private drawImage;
175
- extractFrames(videoSource: string | Buffer, options: ExtractFramesOptions): Promise<any[]>;
50
+ extractFrames(videoSource: string | Buffer, options: ExtractFramesOptions): Promise<Array<{
51
+ source: string;
52
+ isRemote: boolean;
53
+ }>>;
176
54
  masking(source: string | Buffer | PathLike | Uint8Array, maskSource: string | Buffer | PathLike | Uint8Array, options?: MaskOptions): Promise<Buffer>;
177
55
  gradientBlend(source: string | Buffer | PathLike | Uint8Array, options: BlendOptions): Promise<Buffer>;
178
56
  animate(frames: Frame[], defaultDuration: number, defaultWidth?: number, defaultHeight?: number, options?: {
@@ -182,8 +60,81 @@ export declare class ApexPainter {
182
60
  onFrame?: (index: number) => void;
183
61
  onEnd?: () => void;
184
62
  }): Promise<Buffer[] | undefined>;
185
- validHex(hexColor: string): any;
186
- outPut(results: any): Promise<void | Buffer | string | Blob | Object | HTMLCanvasElement>;
63
+ /**
64
+ * Processes multiple operations in parallel
65
+ * @param operations - Array of operations to process
66
+ * @returns Array of result buffers
67
+ */
68
+ batch(operations: BatchOperation[]): Promise<Buffer[]>;
69
+ /**
70
+ * Chains multiple operations sequentially
71
+ * @param operations - Array of operations to chain
72
+ * @returns Final result buffer
73
+ */
74
+ chain(operations: ChainOperation[]): Promise<Buffer>;
75
+ /**
76
+ * Stitches multiple images together
77
+ * @param images - Array of image sources
78
+ * @param options - Stitching options
79
+ * @returns Stitched image buffer
80
+ */
81
+ stitchImages(images: Array<string | Buffer>, options?: StitchOptions): Promise<Buffer>;
82
+ /**
83
+ * Creates an image collage
84
+ * @param images - Array of image sources with optional dimensions
85
+ * @param layout - Collage layout configuration
86
+ * @returns Collage image buffer
87
+ */
88
+ createCollage(images: Array<{
89
+ source: string | Buffer;
90
+ width?: number;
91
+ height?: number;
92
+ }>, layout: CollageLayout): Promise<Buffer>;
93
+ /**
94
+ * Compresses an image with quality control
95
+ * @param image - Image source (path, URL, or Buffer)
96
+ * @param options - Compression options
97
+ * @returns Compressed image buffer
98
+ */
99
+ compress(image: string | Buffer, options?: CompressionOptions): Promise<Buffer>;
100
+ /**
101
+ * Extracts color palette from an image
102
+ * @param image - Image source (path, URL, or Buffer)
103
+ * @param options - Palette extraction options
104
+ * @returns Array of colors with percentages
105
+ */
106
+ extractPalette(image: string | Buffer, options?: PaletteOptions): Promise<Array<{
107
+ color: string;
108
+ percentage: number;
109
+ }>>;
110
+ /**
111
+ * Validates a hexadecimal color string.
112
+ * @param hexColor - Hexadecimal color string to validate (format: #RRGGBB)
113
+ * @returns True if the color is valid
114
+ * @throws Error if the color format is invalid
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * painter.validHex('#ff0000'); // true
119
+ * painter.validHex('#FF00FF'); // true
120
+ * painter.validHex('invalid'); // throws Error
121
+ * ```
122
+ */
123
+ validHex(hexColor: string): boolean;
124
+ /**
125
+ * Converts results to the configured output format.
126
+ * @param results - Buffer or result to convert
127
+ * @returns Converted result in the configured format
128
+ * @throws Error if format is unsupported or conversion fails
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * const painter = new ApexPainter({ type: 'base64' });
133
+ * const result = await painter.createCanvas({ width: 100, height: 100 });
134
+ * const base64String = await painter.outPut(result.buffer); // Returns base64 string
135
+ * ```
136
+ */
137
+ outPut(results: Buffer): Promise<Buffer | string | Blob | ArrayBuffer>;
187
138
  }
188
139
  export {};
189
140
  //# sourceMappingURL=ApexPainter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApexPainter.d.ts","sourceRoot":"","sources":["../../../lib/Canvas/ApexPainter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApexPainter.d.ts","sourceRoot":"","sources":["../../../lib/Canvas/ApexPainter.ts"],"names":[],"mappings":"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"}