apexify.js 5.0.3 → 5.1.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 (35) hide show
  1. package/CHANGELOG.md +352 -137
  2. package/README.md +440 -19
  3. package/dist/cjs/Canvas/ApexPainter.d.ts +272 -0
  4. package/dist/cjs/Canvas/ApexPainter.d.ts.map +1 -1
  5. package/dist/cjs/Canvas/ApexPainter.js +2275 -125
  6. package/dist/cjs/Canvas/ApexPainter.js.map +1 -1
  7. package/dist/cjs/Canvas/utils/Custom/advancedLines.d.ts +4 -4
  8. package/dist/cjs/Canvas/utils/Custom/advancedLines.d.ts.map +1 -1
  9. package/dist/cjs/Canvas/utils/Custom/advancedLines.js +63 -21
  10. package/dist/cjs/Canvas/utils/Custom/advancedLines.js.map +1 -1
  11. package/dist/cjs/Canvas/utils/Custom/customLines.d.ts.map +1 -1
  12. package/dist/cjs/Canvas/utils/Custom/customLines.js +3 -0
  13. package/dist/cjs/Canvas/utils/Custom/customLines.js.map +1 -1
  14. package/dist/cjs/Canvas/utils/types.d.ts +5 -1
  15. package/dist/cjs/Canvas/utils/types.d.ts.map +1 -1
  16. package/dist/cjs/Canvas/utils/types.js.map +1 -1
  17. package/dist/esm/Canvas/ApexPainter.d.ts +272 -0
  18. package/dist/esm/Canvas/ApexPainter.d.ts.map +1 -1
  19. package/dist/esm/Canvas/ApexPainter.js +2275 -125
  20. package/dist/esm/Canvas/ApexPainter.js.map +1 -1
  21. package/dist/esm/Canvas/utils/Custom/advancedLines.d.ts +4 -4
  22. package/dist/esm/Canvas/utils/Custom/advancedLines.d.ts.map +1 -1
  23. package/dist/esm/Canvas/utils/Custom/advancedLines.js +63 -21
  24. package/dist/esm/Canvas/utils/Custom/advancedLines.js.map +1 -1
  25. package/dist/esm/Canvas/utils/Custom/customLines.d.ts.map +1 -1
  26. package/dist/esm/Canvas/utils/Custom/customLines.js +3 -0
  27. package/dist/esm/Canvas/utils/Custom/customLines.js.map +1 -1
  28. package/dist/esm/Canvas/utils/types.d.ts +5 -1
  29. package/dist/esm/Canvas/utils/types.d.ts.map +1 -1
  30. package/dist/esm/Canvas/utils/types.js.map +1 -1
  31. package/lib/Canvas/ApexPainter.ts +2973 -136
  32. package/lib/Canvas/utils/Custom/advancedLines.ts +77 -25
  33. package/lib/Canvas/utils/Custom/customLines.ts +4 -0
  34. package/lib/Canvas/utils/types.ts +6 -2
  35. package/package.json +1 -3
@@ -48,10 +48,282 @@ export declare class ApexPainter {
48
48
  chartNumber: number;
49
49
  }): Promise<Buffer>;
50
50
  cropImage(options: cropOptions): Promise<Buffer>;
51
+ private _ffmpegAvailable;
52
+ private _ffmpegChecked;
53
+ private _ffmpegPath;
54
+ /**
55
+ * Gets video information (duration, resolution, fps, etc.)
56
+ * @param videoSource - Video source (path, URL, or Buffer)
57
+ * @returns Video metadata object
58
+ */
59
+ /**
60
+ * Gets video information (duration, resolution, fps, etc.)
61
+ * @param videoSource - Video source (path, URL, or Buffer)
62
+ * @param skipFFmpegCheck - Skip FFmpeg availability check (for internal use, default: false)
63
+ * @returns Video metadata object
64
+ */
65
+ getVideoInfo(videoSource: string | Buffer, skipFFmpegCheck?: boolean): Promise<{
66
+ duration: number;
67
+ width: number;
68
+ height: number;
69
+ fps: number;
70
+ bitrate: number;
71
+ format: string;
72
+ } | null>;
73
+ /**
74
+ * Extracts multiple frames from a video at specified intervals
75
+ * @param videoSource - Video source (path, URL, or Buffer)
76
+ * @param options - Extraction options
77
+ * @returns Array of frame file paths
78
+ */
51
79
  extractFrames(videoSource: string | Buffer, options: ExtractFramesOptions): Promise<Array<{
52
80
  source: string;
53
81
  isRemote: boolean;
54
82
  }>>;
83
+ /**
84
+ * Comprehensive video processing method - all video features in one place
85
+ * @param options - Video processing options
86
+ * @returns Results based on the operation requested
87
+ */
88
+ createVideo(options: {
89
+ source: string | Buffer;
90
+ getInfo?: boolean;
91
+ extractFrame?: {
92
+ time?: number;
93
+ frame?: number;
94
+ width?: number;
95
+ height?: number;
96
+ outputFormat?: 'jpg' | 'png';
97
+ quality?: number;
98
+ };
99
+ extractFrames?: {
100
+ times?: number[];
101
+ interval?: number;
102
+ frameSelection?: {
103
+ start?: number;
104
+ end?: number;
105
+ };
106
+ outputFormat?: 'jpg' | 'png';
107
+ quality?: number;
108
+ outputDirectory?: string;
109
+ };
110
+ extractAllFrames?: {
111
+ outputFormat?: 'jpg' | 'png';
112
+ outputDirectory?: string;
113
+ quality?: number;
114
+ prefix?: string;
115
+ startTime?: number;
116
+ endTime?: number;
117
+ };
118
+ generateThumbnail?: {
119
+ count?: number;
120
+ grid?: {
121
+ cols: number;
122
+ rows: number;
123
+ };
124
+ width?: number;
125
+ height?: number;
126
+ outputFormat?: 'jpg' | 'png';
127
+ quality?: number;
128
+ };
129
+ convert?: {
130
+ outputPath: string;
131
+ format?: 'mp4' | 'webm' | 'avi' | 'mov' | 'mkv';
132
+ quality?: 'low' | 'medium' | 'high' | 'ultra';
133
+ bitrate?: number;
134
+ fps?: number;
135
+ resolution?: {
136
+ width: number;
137
+ height: number;
138
+ };
139
+ };
140
+ trim?: {
141
+ startTime: number;
142
+ endTime: number;
143
+ outputPath: string;
144
+ };
145
+ extractAudio?: {
146
+ outputPath: string;
147
+ format?: 'mp3' | 'wav' | 'aac' | 'ogg';
148
+ bitrate?: number;
149
+ };
150
+ addWatermark?: {
151
+ watermarkPath: string;
152
+ position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'center';
153
+ opacity?: number;
154
+ size?: {
155
+ width: number;
156
+ height: number;
157
+ };
158
+ outputPath: string;
159
+ };
160
+ changeSpeed?: {
161
+ speed: number;
162
+ outputPath: string;
163
+ };
164
+ generatePreview?: {
165
+ count?: number;
166
+ outputDirectory?: string;
167
+ outputFormat?: 'jpg' | 'png';
168
+ quality?: number;
169
+ };
170
+ applyEffects?: {
171
+ filters: Array<{
172
+ type: 'blur' | 'brightness' | 'contrast' | 'saturation' | 'grayscale' | 'sepia' | 'invert' | 'sharpen' | 'noise';
173
+ intensity?: number;
174
+ value?: number;
175
+ }>;
176
+ outputPath: string;
177
+ };
178
+ merge?: {
179
+ videos: Array<string | Buffer>;
180
+ outputPath: string;
181
+ mode?: 'sequential' | 'side-by-side' | 'grid';
182
+ grid?: {
183
+ cols: number;
184
+ rows: number;
185
+ };
186
+ };
187
+ rotate?: {
188
+ angle?: 90 | 180 | 270;
189
+ flip?: 'horizontal' | 'vertical' | 'both';
190
+ outputPath: string;
191
+ };
192
+ crop?: {
193
+ x: number;
194
+ y: number;
195
+ width: number;
196
+ height: number;
197
+ outputPath: string;
198
+ };
199
+ compress?: {
200
+ outputPath: string;
201
+ quality?: 'low' | 'medium' | 'high' | 'ultra';
202
+ targetSize?: number;
203
+ maxBitrate?: number;
204
+ };
205
+ addText?: {
206
+ text: string;
207
+ position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'center' | 'top-center' | 'bottom-center';
208
+ fontSize?: number;
209
+ fontColor?: string;
210
+ backgroundColor?: string;
211
+ startTime?: number;
212
+ endTime?: number;
213
+ outputPath: string;
214
+ };
215
+ addFade?: {
216
+ fadeIn?: number;
217
+ fadeOut?: number;
218
+ outputPath: string;
219
+ };
220
+ reverse?: {
221
+ outputPath: string;
222
+ };
223
+ createLoop?: {
224
+ outputPath: string;
225
+ smooth?: boolean;
226
+ };
227
+ batch?: {
228
+ videos: Array<{
229
+ source: string | Buffer;
230
+ operations: any;
231
+ }>;
232
+ outputDirectory: string;
233
+ };
234
+ detectScenes?: {
235
+ threshold?: number;
236
+ outputPath?: string;
237
+ };
238
+ stabilize?: {
239
+ outputPath: string;
240
+ smoothing?: number;
241
+ };
242
+ colorCorrect?: {
243
+ brightness?: number;
244
+ contrast?: number;
245
+ saturation?: number;
246
+ hue?: number;
247
+ temperature?: number;
248
+ outputPath: string;
249
+ };
250
+ pictureInPicture?: {
251
+ overlayVideo: string | Buffer;
252
+ position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'center';
253
+ size?: {
254
+ width: number;
255
+ height: number;
256
+ };
257
+ opacity?: number;
258
+ outputPath: string;
259
+ };
260
+ splitScreen?: {
261
+ videos: Array<string | Buffer>;
262
+ layout?: 'side-by-side' | 'top-bottom' | 'grid';
263
+ grid?: {
264
+ cols: number;
265
+ rows: number;
266
+ };
267
+ outputPath: string;
268
+ };
269
+ createTimeLapse?: {
270
+ speed?: number;
271
+ outputPath: string;
272
+ };
273
+ mute?: {
274
+ outputPath: string;
275
+ };
276
+ adjustVolume?: {
277
+ volume: number;
278
+ outputPath: string;
279
+ };
280
+ detectFormat?: boolean;
281
+ }): Promise<any>;
282
+ /**
283
+ * Extracts a frame at a specific time in seconds
284
+ * @param videoSource - Video source (path, URL, or Buffer)
285
+ * @param timeSeconds - Time in seconds
286
+ * @param outputFormat - Output format ('jpg' or 'png', default: 'jpg')
287
+ * @param quality - JPEG quality 1-31 (lower = better, default: 2)
288
+ * @returns Buffer containing the frame image
289
+ */
290
+ extractFrameAtTime(videoSource: string | Buffer, timeSeconds: number, outputFormat?: 'jpg' | 'png', quality?: number): Promise<Buffer | null>;
291
+ /**
292
+ * Extracts a frame by frame number (converts to time using video FPS)
293
+ * @param videoSource - Video source (path, URL, or Buffer)
294
+ * @param frameNumber - Frame number to extract (1-based: frame 1 = first frame)
295
+ * @param outputFormat - Output format ('jpg' or 'png', default: 'jpg')
296
+ * @param quality - JPEG quality 1-31 (lower = better, default: 2)
297
+ * @returns Buffer containing the frame image
298
+ */
299
+ extractFrameByNumber(videoSource: string | Buffer, frameNumber: number, outputFormat?: 'jpg' | 'png', quality?: number): Promise<Buffer | null>;
300
+ /**
301
+ * Extracts multiple frames at specific times
302
+ * @param videoSource - Video source (path, URL, or Buffer)
303
+ * @param times - Array of times in seconds
304
+ * @param outputFormat - Output format ('jpg' or 'png', default: 'jpg')
305
+ * @param quality - JPEG quality 1-31 (lower = better, default: 2)
306
+ * @returns Array of buffers containing frame images
307
+ */
308
+ extractMultipleFrames(videoSource: string | Buffer, times: number[], outputFormat?: 'jpg' | 'png', quality?: number): Promise<Buffer[]>;
309
+ /**
310
+ * Extracts ALL frames from a video and saves them as image files
311
+ * @param videoSource - Video source (path, URL, or Buffer)
312
+ * @param options - Extraction options
313
+ * @returns Array of frame file paths
314
+ */
315
+ extractAllFrames(videoSource: string | Buffer, options?: {
316
+ outputFormat?: 'jpg' | 'png';
317
+ outputDirectory?: string;
318
+ quality?: number;
319
+ prefix?: string;
320
+ startTime?: number;
321
+ endTime?: number;
322
+ }): Promise<Array<{
323
+ source: string;
324
+ frameNumber: number;
325
+ time: number;
326
+ }>>;
55
327
  masking(source: string | Buffer | PathLike | Uint8Array, maskSource: string | Buffer | PathLike | Uint8Array, options?: MaskOptions): Promise<Buffer>;
56
328
  gradientBlend(source: string | Buffer | PathLike | Uint8Array, options: BlendOptions): Promise<Buffer>;
57
329
  animate(frames: Frame[], defaultDuration: number, defaultWidth?: number, defaultHeight?: number, options?: {
@@ -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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"}