apexify.js 5.2.2 → 5.2.6

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 (237) hide show
  1. package/CHANGELOG.md +173 -4
  2. package/README.md +66 -0
  3. package/dist/cjs/Canvas/ApexPainter.d.ts +191 -4
  4. package/dist/cjs/Canvas/ApexPainter.d.ts.map +1 -1
  5. package/dist/cjs/Canvas/ApexPainter.js +201 -96
  6. package/dist/cjs/Canvas/ApexPainter.js.map +1 -1
  7. package/dist/cjs/Canvas/extended/CanvasCreator.d.ts.map +1 -1
  8. package/dist/cjs/Canvas/extended/CanvasCreator.js +3 -18
  9. package/dist/cjs/Canvas/extended/CanvasCreator.js.map +1 -1
  10. package/dist/cjs/Canvas/extended/GIFCreator.d.ts +15 -3
  11. package/dist/cjs/Canvas/extended/GIFCreator.d.ts.map +1 -1
  12. package/dist/cjs/Canvas/extended/GIFCreator.js +107 -9
  13. package/dist/cjs/Canvas/extended/GIFCreator.js.map +1 -1
  14. package/dist/cjs/Canvas/extended/HitDetectionCreator.d.ts +148 -0
  15. package/dist/cjs/Canvas/extended/HitDetectionCreator.d.ts.map +1 -0
  16. package/dist/cjs/Canvas/extended/HitDetectionCreator.js +294 -0
  17. package/dist/cjs/Canvas/extended/HitDetectionCreator.js.map +1 -0
  18. package/dist/cjs/Canvas/extended/ImageCreator.d.ts +3 -2
  19. package/dist/cjs/Canvas/extended/ImageCreator.d.ts.map +1 -1
  20. package/dist/cjs/Canvas/extended/ImageCreator.js +43 -4
  21. package/dist/cjs/Canvas/extended/ImageCreator.js.map +1 -1
  22. package/dist/cjs/Canvas/extended/Path2DCreator.d.ts +166 -0
  23. package/dist/cjs/Canvas/extended/Path2DCreator.d.ts.map +1 -0
  24. package/dist/cjs/Canvas/extended/Path2DCreator.js +246 -0
  25. package/dist/cjs/Canvas/extended/Path2DCreator.js.map +1 -0
  26. package/dist/cjs/Canvas/extended/PixelDataCreator.d.ts +69 -0
  27. package/dist/cjs/Canvas/extended/PixelDataCreator.d.ts.map +1 -0
  28. package/dist/cjs/Canvas/extended/PixelDataCreator.js +232 -0
  29. package/dist/cjs/Canvas/extended/PixelDataCreator.js.map +1 -0
  30. package/dist/cjs/Canvas/extended/TextCreator.d.ts.map +1 -1
  31. package/dist/cjs/Canvas/extended/TextCreator.js +0 -7
  32. package/dist/cjs/Canvas/extended/TextCreator.js.map +1 -1
  33. package/dist/cjs/Canvas/extended/TextMetricsCreator.d.ts +18 -0
  34. package/dist/cjs/Canvas/extended/TextMetricsCreator.d.ts.map +1 -0
  35. package/dist/cjs/Canvas/extended/TextMetricsCreator.js +194 -0
  36. package/dist/cjs/Canvas/extended/TextMetricsCreator.js.map +1 -0
  37. package/dist/cjs/Canvas/extended/VideoCreator.d.ts.map +1 -1
  38. package/dist/cjs/Canvas/extended/VideoCreator.js +1 -42
  39. package/dist/cjs/Canvas/extended/VideoCreator.js.map +1 -1
  40. package/dist/cjs/Canvas/utils/Background/bg.d.ts.map +1 -1
  41. package/dist/cjs/Canvas/utils/Background/bg.js +2 -15
  42. package/dist/cjs/Canvas/utils/Background/bg.js.map +1 -1
  43. package/dist/cjs/Canvas/utils/Charts/barchart.d.ts.map +1 -1
  44. package/dist/cjs/Canvas/utils/Charts/barchart.js +32 -277
  45. package/dist/cjs/Canvas/utils/Charts/barchart.js.map +1 -1
  46. package/dist/cjs/Canvas/utils/Charts/comparisonchart.d.ts.map +1 -1
  47. package/dist/cjs/Canvas/utils/Charts/comparisonchart.js +0 -41
  48. package/dist/cjs/Canvas/utils/Charts/comparisonchart.js.map +1 -1
  49. package/dist/cjs/Canvas/utils/Charts/horizontalbarchart.d.ts.map +1 -1
  50. package/dist/cjs/Canvas/utils/Charts/horizontalbarchart.js +42 -241
  51. package/dist/cjs/Canvas/utils/Charts/horizontalbarchart.js.map +1 -1
  52. package/dist/cjs/Canvas/utils/Charts/linechart.d.ts.map +1 -1
  53. package/dist/cjs/Canvas/utils/Charts/linechart.js +16 -148
  54. package/dist/cjs/Canvas/utils/Charts/linechart.js.map +1 -1
  55. package/dist/cjs/Canvas/utils/Charts/piechart.d.ts.map +1 -1
  56. package/dist/cjs/Canvas/utils/Charts/piechart.js +21 -117
  57. package/dist/cjs/Canvas/utils/Charts/piechart.js.map +1 -1
  58. package/dist/cjs/Canvas/utils/Custom/advancedLines.d.ts.map +1 -1
  59. package/dist/cjs/Canvas/utils/Custom/advancedLines.js +3 -16
  60. package/dist/cjs/Canvas/utils/Custom/advancedLines.js.map +1 -1
  61. package/dist/cjs/Canvas/utils/Custom/customLines.d.ts.map +1 -1
  62. package/dist/cjs/Canvas/utils/Custom/customLines.js +0 -7
  63. package/dist/cjs/Canvas/utils/Custom/customLines.js.map +1 -1
  64. package/dist/cjs/Canvas/utils/General/batchOperations.d.ts.map +1 -1
  65. package/dist/cjs/Canvas/utils/General/batchOperations.js +0 -4
  66. package/dist/cjs/Canvas/utils/General/batchOperations.js.map +1 -1
  67. package/dist/cjs/Canvas/utils/General/conversion.d.ts.map +1 -1
  68. package/dist/cjs/Canvas/utils/General/conversion.js.map +1 -1
  69. package/dist/cjs/Canvas/utils/General/general functions.d.ts.map +1 -1
  70. package/dist/cjs/Canvas/utils/General/general functions.js +0 -19
  71. package/dist/cjs/Canvas/utils/General/general functions.js.map +1 -1
  72. package/dist/cjs/Canvas/utils/General/imageCompression.d.ts.map +1 -1
  73. package/dist/cjs/Canvas/utils/General/imageCompression.js +0 -18
  74. package/dist/cjs/Canvas/utils/General/imageCompression.js.map +1 -1
  75. package/dist/cjs/Canvas/utils/General/imageStitching.d.ts.map +1 -1
  76. package/dist/cjs/Canvas/utils/General/imageStitching.js +0 -14
  77. package/dist/cjs/Canvas/utils/General/imageStitching.js.map +1 -1
  78. package/dist/cjs/Canvas/utils/Image/imageEffects.d.ts.map +1 -1
  79. package/dist/cjs/Canvas/utils/Image/imageEffects.js +8 -16
  80. package/dist/cjs/Canvas/utils/Image/imageEffects.js.map +1 -1
  81. package/dist/cjs/Canvas/utils/Image/imageFilters.js +12 -30
  82. package/dist/cjs/Canvas/utils/Image/imageFilters.js.map +1 -1
  83. package/dist/cjs/Canvas/utils/Image/imageMasking.d.ts.map +1 -1
  84. package/dist/cjs/Canvas/utils/Image/imageMasking.js +0 -22
  85. package/dist/cjs/Canvas/utils/Image/imageMasking.js.map +1 -1
  86. package/dist/cjs/Canvas/utils/Image/imageProperties.d.ts.map +1 -1
  87. package/dist/cjs/Canvas/utils/Image/imageProperties.js +2 -37
  88. package/dist/cjs/Canvas/utils/Image/imageProperties.js.map +1 -1
  89. package/dist/cjs/Canvas/utils/Image/professionalImageFilters.d.ts.map +1 -1
  90. package/dist/cjs/Canvas/utils/Image/professionalImageFilters.js +6 -23
  91. package/dist/cjs/Canvas/utils/Image/professionalImageFilters.js.map +1 -1
  92. package/dist/cjs/Canvas/utils/Image/simpleProfessionalFilters.d.ts.map +1 -1
  93. package/dist/cjs/Canvas/utils/Image/simpleProfessionalFilters.js +7 -16
  94. package/dist/cjs/Canvas/utils/Image/simpleProfessionalFilters.js.map +1 -1
  95. package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.d.ts.map +1 -1
  96. package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.js +1 -16
  97. package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.js.map +1 -1
  98. package/dist/cjs/Canvas/utils/Shapes/shapes.d.ts.map +1 -1
  99. package/dist/cjs/Canvas/utils/Shapes/shapes.js +120 -39
  100. package/dist/cjs/Canvas/utils/Shapes/shapes.js.map +1 -1
  101. package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.d.ts.map +1 -1
  102. package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.js +5 -58
  103. package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.js.map +1 -1
  104. package/dist/cjs/Canvas/utils/Texts/textPathRenderer.d.ts.map +1 -1
  105. package/dist/cjs/Canvas/utils/Texts/textPathRenderer.js +1 -4
  106. package/dist/cjs/Canvas/utils/Texts/textPathRenderer.js.map +1 -1
  107. package/dist/cjs/Canvas/utils/Texts/textProperties.d.ts.map +1 -1
  108. package/dist/cjs/Canvas/utils/Texts/textProperties.js +0 -18
  109. package/dist/cjs/Canvas/utils/Texts/textProperties.js.map +1 -1
  110. package/dist/cjs/Canvas/utils/Video/videoHelpers.d.ts.map +1 -1
  111. package/dist/cjs/Canvas/utils/Video/videoHelpers.js +9 -110
  112. package/dist/cjs/Canvas/utils/Video/videoHelpers.js.map +1 -1
  113. package/dist/cjs/Canvas/utils/types.d.ts +136 -1
  114. package/dist/cjs/Canvas/utils/types.d.ts.map +1 -1
  115. package/dist/cjs/Canvas/utils/types.js.map +1 -1
  116. package/dist/cjs/Canvas/utils/utils.d.ts +4 -2
  117. package/dist/cjs/Canvas/utils/utils.d.ts.map +1 -1
  118. package/dist/cjs/Canvas/utils/utils.js.map +1 -1
  119. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  120. package/dist/esm/Canvas/ApexPainter.d.ts +191 -4
  121. package/dist/esm/Canvas/ApexPainter.d.ts.map +1 -1
  122. package/dist/esm/Canvas/ApexPainter.js +201 -96
  123. package/dist/esm/Canvas/ApexPainter.js.map +1 -1
  124. package/dist/esm/Canvas/extended/CanvasCreator.d.ts.map +1 -1
  125. package/dist/esm/Canvas/extended/CanvasCreator.js +3 -18
  126. package/dist/esm/Canvas/extended/CanvasCreator.js.map +1 -1
  127. package/dist/esm/Canvas/extended/GIFCreator.d.ts +15 -3
  128. package/dist/esm/Canvas/extended/GIFCreator.d.ts.map +1 -1
  129. package/dist/esm/Canvas/extended/GIFCreator.js +107 -9
  130. package/dist/esm/Canvas/extended/GIFCreator.js.map +1 -1
  131. package/dist/esm/Canvas/extended/HitDetectionCreator.d.ts +148 -0
  132. package/dist/esm/Canvas/extended/HitDetectionCreator.d.ts.map +1 -0
  133. package/dist/esm/Canvas/extended/HitDetectionCreator.js +294 -0
  134. package/dist/esm/Canvas/extended/HitDetectionCreator.js.map +1 -0
  135. package/dist/esm/Canvas/extended/ImageCreator.d.ts +3 -2
  136. package/dist/esm/Canvas/extended/ImageCreator.d.ts.map +1 -1
  137. package/dist/esm/Canvas/extended/ImageCreator.js +43 -4
  138. package/dist/esm/Canvas/extended/ImageCreator.js.map +1 -1
  139. package/dist/esm/Canvas/extended/Path2DCreator.d.ts +166 -0
  140. package/dist/esm/Canvas/extended/Path2DCreator.d.ts.map +1 -0
  141. package/dist/esm/Canvas/extended/Path2DCreator.js +246 -0
  142. package/dist/esm/Canvas/extended/Path2DCreator.js.map +1 -0
  143. package/dist/esm/Canvas/extended/PixelDataCreator.d.ts +69 -0
  144. package/dist/esm/Canvas/extended/PixelDataCreator.d.ts.map +1 -0
  145. package/dist/esm/Canvas/extended/PixelDataCreator.js +232 -0
  146. package/dist/esm/Canvas/extended/PixelDataCreator.js.map +1 -0
  147. package/dist/esm/Canvas/extended/TextCreator.d.ts.map +1 -1
  148. package/dist/esm/Canvas/extended/TextCreator.js +0 -7
  149. package/dist/esm/Canvas/extended/TextCreator.js.map +1 -1
  150. package/dist/esm/Canvas/extended/TextMetricsCreator.d.ts +18 -0
  151. package/dist/esm/Canvas/extended/TextMetricsCreator.d.ts.map +1 -0
  152. package/dist/esm/Canvas/extended/TextMetricsCreator.js +194 -0
  153. package/dist/esm/Canvas/extended/TextMetricsCreator.js.map +1 -0
  154. package/dist/esm/Canvas/extended/VideoCreator.d.ts.map +1 -1
  155. package/dist/esm/Canvas/extended/VideoCreator.js +1 -42
  156. package/dist/esm/Canvas/extended/VideoCreator.js.map +1 -1
  157. package/dist/esm/Canvas/utils/Background/bg.d.ts.map +1 -1
  158. package/dist/esm/Canvas/utils/Background/bg.js +2 -15
  159. package/dist/esm/Canvas/utils/Background/bg.js.map +1 -1
  160. package/dist/esm/Canvas/utils/Charts/barchart.d.ts.map +1 -1
  161. package/dist/esm/Canvas/utils/Charts/barchart.js +32 -277
  162. package/dist/esm/Canvas/utils/Charts/barchart.js.map +1 -1
  163. package/dist/esm/Canvas/utils/Charts/comparisonchart.d.ts.map +1 -1
  164. package/dist/esm/Canvas/utils/Charts/comparisonchart.js +0 -41
  165. package/dist/esm/Canvas/utils/Charts/comparisonchart.js.map +1 -1
  166. package/dist/esm/Canvas/utils/Charts/horizontalbarchart.d.ts.map +1 -1
  167. package/dist/esm/Canvas/utils/Charts/horizontalbarchart.js +42 -241
  168. package/dist/esm/Canvas/utils/Charts/horizontalbarchart.js.map +1 -1
  169. package/dist/esm/Canvas/utils/Charts/linechart.d.ts.map +1 -1
  170. package/dist/esm/Canvas/utils/Charts/linechart.js +16 -148
  171. package/dist/esm/Canvas/utils/Charts/linechart.js.map +1 -1
  172. package/dist/esm/Canvas/utils/Charts/piechart.d.ts.map +1 -1
  173. package/dist/esm/Canvas/utils/Charts/piechart.js +21 -117
  174. package/dist/esm/Canvas/utils/Charts/piechart.js.map +1 -1
  175. package/dist/esm/Canvas/utils/Custom/advancedLines.d.ts.map +1 -1
  176. package/dist/esm/Canvas/utils/Custom/advancedLines.js +3 -16
  177. package/dist/esm/Canvas/utils/Custom/advancedLines.js.map +1 -1
  178. package/dist/esm/Canvas/utils/Custom/customLines.d.ts.map +1 -1
  179. package/dist/esm/Canvas/utils/Custom/customLines.js +0 -7
  180. package/dist/esm/Canvas/utils/Custom/customLines.js.map +1 -1
  181. package/dist/esm/Canvas/utils/General/batchOperations.d.ts.map +1 -1
  182. package/dist/esm/Canvas/utils/General/batchOperations.js +0 -4
  183. package/dist/esm/Canvas/utils/General/batchOperations.js.map +1 -1
  184. package/dist/esm/Canvas/utils/General/conversion.d.ts.map +1 -1
  185. package/dist/esm/Canvas/utils/General/conversion.js.map +1 -1
  186. package/dist/esm/Canvas/utils/General/general functions.d.ts.map +1 -1
  187. package/dist/esm/Canvas/utils/General/general functions.js +0 -19
  188. package/dist/esm/Canvas/utils/General/general functions.js.map +1 -1
  189. package/dist/esm/Canvas/utils/General/imageCompression.d.ts.map +1 -1
  190. package/dist/esm/Canvas/utils/General/imageCompression.js +0 -18
  191. package/dist/esm/Canvas/utils/General/imageCompression.js.map +1 -1
  192. package/dist/esm/Canvas/utils/General/imageStitching.d.ts.map +1 -1
  193. package/dist/esm/Canvas/utils/General/imageStitching.js +0 -14
  194. package/dist/esm/Canvas/utils/General/imageStitching.js.map +1 -1
  195. package/dist/esm/Canvas/utils/Image/imageEffects.d.ts.map +1 -1
  196. package/dist/esm/Canvas/utils/Image/imageEffects.js +8 -16
  197. package/dist/esm/Canvas/utils/Image/imageEffects.js.map +1 -1
  198. package/dist/esm/Canvas/utils/Image/imageFilters.js +12 -30
  199. package/dist/esm/Canvas/utils/Image/imageFilters.js.map +1 -1
  200. package/dist/esm/Canvas/utils/Image/imageMasking.d.ts.map +1 -1
  201. package/dist/esm/Canvas/utils/Image/imageMasking.js +0 -22
  202. package/dist/esm/Canvas/utils/Image/imageMasking.js.map +1 -1
  203. package/dist/esm/Canvas/utils/Image/imageProperties.d.ts.map +1 -1
  204. package/dist/esm/Canvas/utils/Image/imageProperties.js +2 -37
  205. package/dist/esm/Canvas/utils/Image/imageProperties.js.map +1 -1
  206. package/dist/esm/Canvas/utils/Image/professionalImageFilters.d.ts.map +1 -1
  207. package/dist/esm/Canvas/utils/Image/professionalImageFilters.js +6 -23
  208. package/dist/esm/Canvas/utils/Image/professionalImageFilters.js.map +1 -1
  209. package/dist/esm/Canvas/utils/Image/simpleProfessionalFilters.d.ts.map +1 -1
  210. package/dist/esm/Canvas/utils/Image/simpleProfessionalFilters.js +7 -16
  211. package/dist/esm/Canvas/utils/Image/simpleProfessionalFilters.js.map +1 -1
  212. package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.d.ts.map +1 -1
  213. package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.js +1 -16
  214. package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.js.map +1 -1
  215. package/dist/esm/Canvas/utils/Shapes/shapes.d.ts.map +1 -1
  216. package/dist/esm/Canvas/utils/Shapes/shapes.js +120 -39
  217. package/dist/esm/Canvas/utils/Shapes/shapes.js.map +1 -1
  218. package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.d.ts.map +1 -1
  219. package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.js +5 -58
  220. package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.js.map +1 -1
  221. package/dist/esm/Canvas/utils/Texts/textPathRenderer.d.ts.map +1 -1
  222. package/dist/esm/Canvas/utils/Texts/textPathRenderer.js +1 -4
  223. package/dist/esm/Canvas/utils/Texts/textPathRenderer.js.map +1 -1
  224. package/dist/esm/Canvas/utils/Texts/textProperties.d.ts.map +1 -1
  225. package/dist/esm/Canvas/utils/Texts/textProperties.js +0 -18
  226. package/dist/esm/Canvas/utils/Texts/textProperties.js.map +1 -1
  227. package/dist/esm/Canvas/utils/Video/videoHelpers.d.ts.map +1 -1
  228. package/dist/esm/Canvas/utils/Video/videoHelpers.js +9 -110
  229. package/dist/esm/Canvas/utils/Video/videoHelpers.js.map +1 -1
  230. package/dist/esm/Canvas/utils/types.d.ts +136 -1
  231. package/dist/esm/Canvas/utils/types.d.ts.map +1 -1
  232. package/dist/esm/Canvas/utils/types.js.map +1 -1
  233. package/dist/esm/Canvas/utils/utils.d.ts +4 -2
  234. package/dist/esm/Canvas/utils/utils.d.ts.map +1 -1
  235. package/dist/esm/Canvas/utils/utils.js.map +1 -1
  236. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  237. package/package.json +1 -3
package/CHANGELOG.md CHANGED
@@ -5,7 +5,176 @@ All notable changes to Apexify.js will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [5.2.0] - 2024-12-20
8
+ ## [5.2.5] - 2025-12-27
9
+
10
+ ### ✨ Added
11
+
12
+ ##### Advanced Text Metrics API ⭐ NEW!
13
+ - **Comprehensive Text Measurement** (`measureText`): Complete text metrics matching Canvas API + extensions
14
+ - Standard Canvas API metrics: `width`, `actualBoundingBoxAscent/Descent`, `actualBoundingBoxLeft/Right`, `fontBoundingBoxAscent/Descent`
15
+ - Advanced Canvas API metrics: `alphabeticBaseline`, `emHeightAscent/Descent`, `hangingBaseline`, `ideographicBaseline` (when available)
16
+ - Enhanced Apexify.js metrics: `height`, `lineHeight`, `baseline`, `top`, `bottom`, `centerX`, `centerY`
17
+ - Multi-line support: `lines`, `totalHeight`, `lineCount` when `maxWidth` is provided
18
+ - Character-level metrics: `charWidths`, `charPositions` when `includeCharMetrics` is true
19
+ - Full font support: custom fonts, bold, italic, letter spacing, word spacing
20
+ - Perfect for dynamic layouts, text centering, and precise text positioning
21
+
22
+ ##### Advanced Pixel Data API ⭐ NEW!
23
+ - **Pixel Manipulation** (`getPixelData`, `setPixelData`): Complete pixel-level control
24
+ - Get pixel data from any region: `getPixelData(canvasBuffer, { x, y, width, height })`
25
+ - Set pixel data back to canvas: `setPixelData(canvasBuffer, pixelData, { x, y })`
26
+ - Access RGBA values directly: `pixelData.data` (Uint8ClampedArray)
27
+ - Full Canvas ImageData compatibility
28
+
29
+ - **Pixel Manipulation Filters** (`manipulatePixels`): Advanced pixel processing
30
+ - Custom processor functions: `processor: (r, g, b, a, x, y) => [r, g, b, a]`
31
+ - Built-in filters: `grayscale`, `invert`, `sepia`, `brightness`, `contrast`, `saturate`
32
+ - Intensity control for all filters (0-1)
33
+ - Region-specific manipulation: Apply filters to specific areas
34
+ - Perfect for custom effects, color adjustments, and advanced image processing
35
+
36
+ - **Pixel Color Utilities** (`getPixelColor`, `setPixelColor`): Quick pixel access
37
+ - Get pixel color at coordinates: `getPixelColor(canvasBuffer, x, y)`
38
+ - Set pixel color at coordinates: `setPixelColor(canvasBuffer, x, y, { r, g, b, a })`
39
+ - Convenient helpers for pixel-level operations
40
+
41
+ ##### Advanced Path2D API ⭐ NEW!
42
+ - **Path Creation** (`createPath2D`): Create complex paths from commands
43
+ - Full Canvas Path2D compatibility
44
+ - Comprehensive command set: `moveTo`, `lineTo`, `arc`, `arcTo`, `bezierCurveTo`, `quadraticCurveTo`, `rect`, `ellipse`, `closePath`
45
+ - Advanced shape commands: `circle`, `roundedRect` (with per-corner radius), `polygon`, `star`, `arrow`
46
+ - Build complex paths programmatically with type-safe command arrays
47
+ - Perfect for complex shapes, custom graphics, and advanced path manipulation
48
+
49
+ - **Path Drawing** (`drawPath`): Draw paths with advanced styling options
50
+ - Stroke options: color, width, lineCap, lineJoin, miterLimit, dashArray, dashOffset, opacity
51
+ - Fill options: color, opacity, fill rule (nonzero/evenodd)
52
+ - Transform support: translate, rotate, scale with custom origin point
53
+ - Full integration with Apexify.js styling system
54
+ - Works with both Path2D objects and command arrays
55
+
56
+ ##### Advanced Hit Detection API ⭐ NEW!
57
+ - **Point-in-Path Detection** (`isPointInPath`): Check if point is inside a Path2D object
58
+ - Detect hits in fill area and stroke edges
59
+ - Configurable stroke width for stroke detection
60
+ - Tolerance control for edge cases
61
+ - Returns detailed hit information: `hit`, `hitType` ('fill'/'stroke'/'outside'), `distance`
62
+
63
+ - **Custom Region Detection** (`isPointInRegion`, `isPointInAnyRegion`): Advanced region-based hit detection
64
+ - Multiple region types: `rect`, `circle`, `ellipse`, `polygon`, `path`, `custom`
65
+ - Rectangle regions with precise boundary detection
66
+ - Circle and ellipse regions (with rotation support)
67
+ - Polygon regions with any number of points
68
+ - Path2D-based regions for complex shapes
69
+ - Custom function regions: `check: (x, y) => boolean` for any custom logic
70
+ - Multi-region detection: Test point against multiple regions at once
71
+ - Distance calculation: `getDistanceToRegion()` for spatial queries
72
+ - Perfect for interactive graphics, collision detection, and UI elements
73
+
74
+ ##### New Shape Types
75
+ - **Arc and PieSlice Shapes**: Added `'arc'` and `'pieSlice'` as new `ShapeType` options
76
+ - Support for drawing arcs and pie slice sectors
77
+ - Configurable start and end angles (in radians)
78
+ - Support for donut slices with `innerRadius`
79
+ - Custom pivot points with `centerX` and `centerY`
80
+ - Full feature support: gradients, shadows, strokes, filters
81
+ - Perfect for roulette wheels, pie charts, and circular segments
82
+
83
+ ##### Enhanced GIF Creation with Callbacks
84
+ - **Programmatic Frame Generation** (`onStart` callback): Generate GIF frames using Apexify.js APIs
85
+ - Callback receives frame count and painter instance
86
+ - Generate frames entirely using Apexify.js (`createCanvas`, `createImage`, `createText`, etc.)
87
+ - No file I/O needed - all frames generated in memory
88
+ - Configurable frame count via `frameCount` or `duration` options
89
+ - Perfect for animations, roulette wheels, spinners, and dynamic content
90
+
91
+ - **Static Final Frame Generation** (`onEnd` callback): Automatically generate static image from final frame
92
+ - Receives final frame buffer and painter instance
93
+ - Can process/add effects to final frame
94
+ - Returns both GIF and static image when `onEnd` is provided
95
+ - Perfect for showing "winner" frames or final states
96
+
97
+ ##### Group Transform Operations
98
+ - **Grouped Drawing** (`isGrouped` option): Transform multiple elements together as a group
99
+ - Apply rotations, scales, and translations to all elements simultaneously
100
+ - Shared pivot point for rotation and scaling
101
+ - All elements rotate around a common center point (not individual centers)
102
+ - Perfect for roulette wheels, clocks, spinners, and grouped UI elements
103
+ - Used with `createImage()` when passing array of elements
104
+
105
+ ### 🔧 Improved
106
+
107
+ ##### Text Metrics Enhancements
108
+ - **Customizable Measurement Canvas**: Made measurement canvas size configurable
109
+ - Optional `measurementCanvas` option in `measureText()` for memory optimization
110
+ - Smart auto-calculation based on text length, font size, and wrapping
111
+ - Bounds protection: 1000-10000px width, 500-5000px height
112
+ - Better memory efficiency for large text measurements
113
+
114
+ ##### Image Creation Enhancements
115
+ - **Enhanced Shape Property Support**: Properly pass all shape properties through the rendering pipeline
116
+ - Fixed passing of `points` array for custom polygons
117
+ - Fixed passing of `startAngle`, `endAngle` for arcs/pieSlices
118
+ - Fixed passing of `centerX`, `centerY` for custom pivot points
119
+ - All shape properties now correctly propagated to drawing functions
120
+
121
+ ##### Group Transform Implementation
122
+ - **Correct Transform Order**: Fixed transformation order in grouped mode
123
+ - Proper order: translate to pivot → rotate → scale → translate → translate back
124
+ - Prevents double rotation and transform conflicts
125
+ - Ensures all elements transform correctly as a single unit
126
+
127
+ ##### GIF Creation Workflow
128
+ - **Simplified Animation Creation**: Generate animated GIFs entirely using Apexify.js APIs
129
+ - No need to save frames to files first
130
+ - Generate frames programmatically in memory
131
+ - Cleaner API without direct canvas manipulation
132
+ - Better developer experience for animations
133
+
134
+ ### 🐛 Fixed
135
+
136
+ ##### Shape Drawing Fixes
137
+ - **Fixed Polygon Default Behavior**: Fixed issue where polygons without `points` were defaulting to hexagon
138
+ - Custom `points` array now properly recognized and used
139
+ - Polygon drawing correctly uses provided points or falls back to regular polygon
140
+ - Fixed white hexagon appearing incorrectly
141
+
142
+ - **Fixed Shape Property Passing**: Fixed shape properties not being passed to drawing functions
143
+ - `points`, `startAngle`, `endAngle`, `centerX`, `centerY` now properly passed through
144
+ - Type definitions updated to include all shape properties
145
+ - Shape rendering now works correctly for all shape types
146
+
147
+ ##### Group Transform Fixes
148
+ - **Fixed Double Rotation Bug**: Fixed issue where elements in grouped mode were being rotated twice
149
+ - Elements in grouped mode now have `rotation: 0` to prevent individual rotation
150
+ - Group transform handles all transformations correctly
151
+ - Elements now rotate together as intended
152
+
153
+ - **Fixed Transform Context**: Fixed canvas context state management in grouped transforms
154
+ - Proper `ctx.save()` and `ctx.restore()` usage
155
+ - Transform state correctly isolated per group operation
156
+ - No interference between grouped and individual transforms
157
+
158
+ ##### GIF Callback Fixes
159
+ - **Fixed Return Type**: Fixed TypeScript return type for GIF creation with `onEnd` callback
160
+ - Returns `{ gif: Buffer | string, static: Buffer }` when `onEnd` is provided
161
+ - Returns just GIF buffer when `onEnd` is not provided
162
+ - Proper type handling for file output format
163
+
164
+ - **Fixed Frame Count Calculation**: Improved frame count estimation when using `onStart` callback
165
+ - Better default frame count (30 frames)
166
+ - Proper calculation from `duration` and `delay` options
167
+ - More accurate animation timing
168
+
169
+ ##### Code Quality Improvements
170
+ - **Comment Cleanup**: Removed descriptive inline comments throughout codebase
171
+ - Cleaned up redundant code comments that don't add value
172
+ - Improved code readability and maintainability
173
+ - Preserved important comments (eslint, TODO, FIXME, JSDoc)
174
+ - Total cleanup: ~58,000 characters removed across 42 files
175
+ - All code functionality preserved, cleaner codebase
176
+
177
+ ## [5.2.0] - 2025-12-25
9
178
 
10
179
  ### ✨ Added
11
180
 
@@ -245,7 +414,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
245
414
 
246
415
  ---
247
416
 
248
- ## [5.1.0] - 2024-12-20
417
+ ## [5.1.0] - 2025-12-20
249
418
 
250
419
  ### ✨ Added
251
420
 
@@ -410,7 +579,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
410
579
 
411
580
  ---
412
581
 
413
- ## [5.0.5] - 2024-12-20
582
+ ## [5.0.5] - 2025-09-24
414
583
 
415
584
  ### ✨ Enhanced
416
585
 
@@ -445,7 +614,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
445
614
 
446
615
  ---
447
616
 
448
- ## [5.0.0] - 2024-12-20
617
+ ## [5.0.0] - 2025-08-13
449
618
 
450
619
  ### 🎉 Major Feature Release - Advanced Image & Canvas Features
451
620
 
package/README.md CHANGED
@@ -14,6 +14,8 @@
14
14
 
15
15
  **The most powerful, all-in-one canvas rendering and image processing library for Node.js**
16
16
 
17
+ **🚀 Now Even More Advanced: Full Canvas API Compatibility + Advanced Extensions**
18
+
17
19
  </div>
18
20
 
19
21
  ---
@@ -34,6 +36,10 @@ While other libraries force you to install multiple packages for different tasks
34
36
  | **Text Rendering** | ✅ Advanced (gradients, paths, effects) | ❌ Basic only |
35
37
  | **Shape Drawing** | ✅ Complex shapes (heart, star, custom) | ❌ Basic shapes only |
36
38
  | **Batch Processing** | ✅ Built-in | ❌ Manual implementation |
39
+ | **Text Metrics API** | ✅ Advanced (Canvas API + extensions) | ❌ Not available |
40
+ | **Pixel Data API** | ✅ Advanced (get/set/manipulate) | ❌ Not available |
41
+ | **Path2D API** | ✅ Advanced (full Canvas compatibility) | ⚠️ Basic only |
42
+ | **Hit Detection** | ✅ Advanced (multi-region, custom) | ❌ Not available |
37
43
  | **TypeScript Support** | ✅ Full type safety | ⚠️ Partial or none |
38
44
  | **Performance** | ✅ Rust-powered (@napi-rs) | ⚠️ JavaScript-only |
39
45
 
@@ -44,6 +50,8 @@ While other libraries force you to install multiple packages for different tasks
44
50
  ✅ **Rust-Powered Performance** - Built on @napi-rs/canvas for blazing speed
45
51
  ✅ **Modular Architecture** - Clean, maintainable codebase
46
52
  ✅ **Comprehensive Features** - 200+ methods covering every use case
53
+ ✅ **Canvas API Compatible** - Full Canvas API support with advanced extensions
54
+ ✅ **Advanced APIs** - Text Metrics, Pixel Data, Path2D, Hit Detection
47
55
  ✅ **Active Development** - Regular updates with new features
48
56
  ✅ **Production Ready** - Used in production by thousands of projects
49
57
 
@@ -118,6 +126,9 @@ While other libraries force you to install multiple packages for different tasks
118
126
  | **Text Wrapping** | Automatic text wrapping with custom widths |
119
127
  | **Text Rotation** | Rotate text at any angle |
120
128
  | **Text Spacing** | Letter spacing and line height control |
129
+ | **Text Metrics API** | Advanced text measurement (Canvas API + extensions) |
130
+ | **Character Metrics** | Per-character width and position metrics |
131
+ | **Multi-line Metrics** | Line-by-line text metrics for wrapped text |
121
132
 
122
133
  ### 🔷 **Shape Drawing**
123
134
 
@@ -131,6 +142,9 @@ While other libraries force you to install multiple packages for different tasks
131
142
  | **Shape Rotation** | Rotate shapes with custom angles |
132
143
  | **Shape Scaling** | Scale shapes with custom factors |
133
144
  | **Advanced Strokes** | Groove, ridge, double, inset, outset styles |
145
+ | **Arc & PieSlice** | Draw arcs and pie slice sectors with custom angles |
146
+ | **Path2D API** | Advanced path creation and manipulation |
147
+ | **Hit Detection** | Point-in-shape detection with custom regions |
134
148
 
135
149
  ### 📊 **Chart Generation**
136
150
 
@@ -195,6 +209,21 @@ While other libraries force you to install multiple packages for different tasks
195
209
  | **Output Formats** | File, buffer, base64, attachment output |
196
210
  | **Quality Control** | Adjust GIF quality and optimization |
197
211
 
212
+ ### 🔬 **Advanced APIs** ⭐ NEW!
213
+
214
+ | Feature | Description |
215
+ |---------|-------------|
216
+ | **Text Metrics API** | Complete text measurement matching Canvas API + extensions |
217
+ | **Pixel Data API** | Direct pixel manipulation (get/set/manipulate pixels) |
218
+ | **Pixel Filters** | Built-in filters (grayscale, invert, sepia, brightness, contrast) |
219
+ | **Custom Pixel Processors** | Custom functions for pixel-level processing |
220
+ | **Path2D API** | Advanced path creation with commands (moveTo, lineTo, arc, bezier, etc.) |
221
+ | **Path Drawing** | Draw paths with stroke, fill, and transform options |
222
+ | **Hit Detection** | Point-in-path and point-in-region detection |
223
+ | **Custom Regions** | Rectangle, circle, ellipse, polygon, path, and custom function regions |
224
+ | **Multi-Region Detection** | Test points against multiple regions simultaneously |
225
+ | **Distance Calculation** | Calculate distances from points to region edges |
226
+
198
227
  ### 🛠️ **Utilities & Tools**
199
228
 
200
229
  | Feature | Description |
@@ -252,6 +281,42 @@ const image = await painter.createImage({
252
281
  width: 200,
253
282
  height: 200
254
283
  }, canvas);
284
+
285
+ // Advanced: Text Metrics API
286
+ const metrics = await painter.measureText({
287
+ text: 'Hello, World!',
288
+ fontSize: 48,
289
+ fontFamily: 'Arial',
290
+ includeCharMetrics: true
291
+ });
292
+ console.log(`Text width: ${metrics.width}px`);
293
+
294
+ // Advanced: Pixel Data API
295
+ const pixelData = await painter.getPixelData(image.buffer, {
296
+ x: 0, y: 0, width: 100, height: 100
297
+ });
298
+ const processed = await painter.manipulatePixels(image.buffer, {
299
+ filter: 'grayscale',
300
+ intensity: 1.0
301
+ });
302
+
303
+ // Advanced: Path2D API
304
+ const path = painter.createPath2D([
305
+ { type: 'moveTo', x: 0, y: 0 },
306
+ { type: 'lineTo', x: 100, y: 100 },
307
+ { type: 'arc', x: 150, y: 150, radius: 50, startAngle: 0, endAngle: Math.PI }
308
+ ]);
309
+ await painter.drawPath(canvas.buffer, path, {
310
+ stroke: { color: '#ff0000', width: 2 },
311
+ fill: { color: '#00ff00', opacity: 0.5 }
312
+ });
313
+
314
+ // Advanced: Hit Detection API
315
+ const hitResult = await painter.isPointInRegion({
316
+ type: 'circle',
317
+ x: 100, y: 100, radius: 50
318
+ }, 120, 120);
319
+ console.log(`Point hit: ${hitResult.hit}`);
255
320
 
256
321
  // Save result
257
322
  await painter.save(image, {
@@ -309,6 +374,7 @@ Create thumbnails, previews, apply effects, transitions, and process videos at s
309
374
  - **Optimized Algorithms**: Efficient image processing and rendering
310
375
  - **Batch Processing**: Process multiple operations in parallel
311
376
  - **Memory Efficient**: Smart resource management and cleanup
377
+ - **Canvas API Native**: Direct access to Canvas APIs for maximum performance
312
378
 
313
379
  ---
314
380
 
@@ -1,5 +1,5 @@
1
1
  import { PathLike } from "fs";
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";
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, CreateImageOptions, TextMetrics, PixelData, PixelManipulationOptions, PathCommand, Path2DDrawOptions, HitRegion, HitDetectionOptions, HitDetectionResult } from "./utils/utils";
3
3
  import { type CanvasResults } from "./extended/CanvasCreator";
4
4
  import { VideoCreationOptions } from "./extended/VideoCreator";
5
5
  import type { PieSlice, PieChartOptions } from "./utils/Charts/piechart";
@@ -17,6 +17,10 @@ export declare class ApexPainter {
17
17
  private chartCreator;
18
18
  private videoCreator;
19
19
  private videoHelpers;
20
+ private textMetricsCreator;
21
+ private pixelDataCreator;
22
+ private path2DCreator;
23
+ private hitDetectionCreator;
20
24
  constructor({ type }?: OutputFormat);
21
25
  /**
22
26
  * Creates a canvas with the given configuration.
@@ -92,7 +96,7 @@ export declare class ApexPainter {
92
96
  * ], canvasBuffer);
93
97
  * ```
94
98
  */
95
- createImage(images: ImageProperties | ImageProperties[], canvasBuffer: CanvasResults | Buffer): Promise<Buffer>;
99
+ createImage(images: ImageProperties | ImageProperties[], canvasBuffer: CanvasResults | Buffer, options?: CreateImageOptions): Promise<Buffer>;
96
100
  /**
97
101
  * Creates text on an existing canvas buffer with enhanced styling options.
98
102
  *
@@ -148,14 +152,197 @@ export declare class ApexPainter {
148
152
  * ```
149
153
  */
150
154
  createText(textArray: TextProperties | TextProperties[], canvasBuffer: CanvasResults | Buffer): Promise<Buffer>;
155
+ /**
156
+ * Measures text dimensions and properties (advanced text metrics API)
157
+ *
158
+ * @param textProps - Text properties to measure (same as createText)
159
+ * @returns Comprehensive text metrics including width, height, bounding boxes, and more
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * const metrics = await painter.measureText({
164
+ * text: "Hello World",
165
+ * fontSize: 24,
166
+ * font: { family: 'Arial' },
167
+ * bold: true,
168
+ * includeCharMetrics: true // Get per-character metrics
169
+ * });
170
+ *
171
+ * console.log(metrics.width); // Text width
172
+ * console.log(metrics.height); // Text height
173
+ * console.log(metrics.lines); // Multi-line metrics if maxWidth provided
174
+ *
175
+ * // Optional: Customize measurement canvas size (for memory optimization)
176
+ * const metrics2 = await painter.measureText({
177
+ * text: "Very long text...",
178
+ * fontSize: 24,
179
+ * measurementCanvas: { width: 5000, height: 2000 } // Optional
180
+ * });
181
+ * ```
182
+ */
183
+ measureText(textProps: TextProperties): Promise<TextMetrics>;
184
+ /**
185
+ * Gets pixel data from a canvas buffer (advanced pixel manipulation API)
186
+ *
187
+ * @param canvasBuffer - Canvas buffer or CanvasResults
188
+ * @param options - Options for pixel data extraction (x, y, width, height)
189
+ * @returns Pixel data with RGBA values
190
+ *
191
+ * @example
192
+ * ```typescript
193
+ * const pixelData = await painter.getPixelData(canvasBuffer, {
194
+ * x: 0, y: 0, width: 100, height: 100
195
+ * });
196
+ *
197
+ * // Access RGBA values
198
+ * const r = pixelData.data[0]; // Red
199
+ * const g = pixelData.data[1]; // Green
200
+ * const b = pixelData.data[2]; // Blue
201
+ * const a = pixelData.data[3]; // Alpha
202
+ * ```
203
+ */
204
+ getPixelData(canvasBuffer: CanvasResults | Buffer, options?: {
205
+ x?: number;
206
+ y?: number;
207
+ width?: number;
208
+ height?: number;
209
+ }): Promise<PixelData>;
210
+ /**
211
+ * Sets pixel data to a canvas buffer
212
+ *
213
+ * @param canvasBuffer - Canvas buffer or CanvasResults
214
+ * @param pixelData - Pixel data to set (from getPixelData)
215
+ * @param options - Options for setting pixel data (x, y, dirty region)
216
+ * @returns New canvas buffer with updated pixels
217
+ *
218
+ * @example
219
+ * ```typescript
220
+ * // Modify pixels
221
+ * pixelData.data[0] = 255; // Set first pixel to red
222
+ *
223
+ * // Set back to canvas
224
+ * const updated = await painter.setPixelData(canvasBuffer, pixelData, {
225
+ * x: 0, y: 0
226
+ * });
227
+ * ```
228
+ */
229
+ setPixelData(canvasBuffer: CanvasResults | Buffer, pixelData: PixelData, options?: {
230
+ x?: number;
231
+ y?: number;
232
+ dirtyX?: number;
233
+ dirtyY?: number;
234
+ dirtyWidth?: number;
235
+ dirtyHeight?: number;
236
+ }): Promise<Buffer>;
237
+ /**
238
+ * Manipulates pixels using custom processor or built-in filters (advanced pixel manipulation)
239
+ *
240
+ * @param canvasBuffer - Canvas buffer or CanvasResults
241
+ * @param options - Manipulation options (processor function or filter)
242
+ * @returns New canvas buffer with manipulated pixels
243
+ *
244
+ * @example
245
+ * ```typescript
246
+ * // Custom processor
247
+ * const processed = await painter.manipulatePixels(canvasBuffer, {
248
+ * processor: (r, g, b, a, x, y) => {
249
+ * // Invert colors
250
+ * return [255 - r, 255 - g, 255 - b, a];
251
+ * }
252
+ * });
253
+ *
254
+ * // Built-in filter
255
+ * const grayscale = await painter.manipulatePixels(canvasBuffer, {
256
+ * filter: 'grayscale',
257
+ * intensity: 1.0
258
+ * });
259
+ *
260
+ * // Apply to specific region
261
+ * const region = await painter.manipulatePixels(canvasBuffer, {
262
+ * filter: 'brightness',
263
+ * intensity: 0.8,
264
+ * region: { x: 100, y: 100, width: 200, height: 200 }
265
+ * });
266
+ * ```
267
+ */
268
+ manipulatePixels(canvasBuffer: CanvasResults | Buffer, options: PixelManipulationOptions): Promise<Buffer>;
269
+ /**
270
+ * Gets pixel color at specific coordinates
271
+ *
272
+ * @param canvasBuffer - Canvas buffer or CanvasResults
273
+ * @param x - X coordinate
274
+ * @param y - Y coordinate
275
+ * @returns RGBA color values
276
+ *
277
+ * @example
278
+ * ```typescript
279
+ * const color = await painter.getPixelColor(canvasBuffer, 100, 200);
280
+ * console.log(color.r, color.g, color.b, color.a);
281
+ * ```
282
+ */
283
+ getPixelColor(canvasBuffer: CanvasResults | Buffer, x: number, y: number): Promise<{
284
+ r: number;
285
+ g: number;
286
+ b: number;
287
+ a: number;
288
+ }>;
289
+ /**
290
+ * Sets pixel color at specific coordinates
291
+ *
292
+ * @param canvasBuffer - Canvas buffer or CanvasResults
293
+ * @param x - X coordinate
294
+ * @param y - Y coordinate
295
+ * @param color - RGBA color values
296
+ * @returns New canvas buffer
297
+ *
298
+ * @example
299
+ * ```typescript
300
+ * const updated = await painter.setPixelColor(canvasBuffer, 100, 200, {
301
+ * r: 255, g: 0, b: 0, a: 255 // Red pixel
302
+ * });
303
+ * ```
304
+ */
305
+ setPixelColor(canvasBuffer: CanvasResults | Buffer, x: number, y: number, color: {
306
+ r: number;
307
+ g: number;
308
+ b: number;
309
+ a?: number;
310
+ }): Promise<Buffer>;
311
+ /**
312
+ * Creates a Path2D object from commands (advanced path API)
313
+ */
314
+ createPath2D(commands: PathCommand[]): any;
315
+ /**
316
+ * Draws a Path2D object onto a canvas buffer
317
+ */
318
+ drawPath(canvasBuffer: CanvasResults | Buffer, path: any | PathCommand[], options?: Path2DDrawOptions): Promise<Buffer>;
319
+ /**
320
+ * Checks if a point is inside a Path2D object (hit detection)
321
+ */
322
+ isPointInPath(path: any | PathCommand[], x: number, y: number, options?: HitDetectionOptions): Promise<HitDetectionResult>;
323
+ /**
324
+ * Checks if a point is inside a custom region (advanced hit detection)
325
+ */
326
+ isPointInRegion(region: HitRegion, x: number, y: number, options?: HitDetectionOptions): Promise<HitDetectionResult>;
327
+ /**
328
+ * Checks if a point is inside any of multiple regions
329
+ */
330
+ isPointInAnyRegion(regions: HitRegion[], x: number, y: number, options?: HitDetectionOptions): Promise<HitDetectionResult>;
331
+ /**
332
+ * Gets the distance from a point to the nearest edge of a region
333
+ */
334
+ getDistanceToRegion(region: HitRegion, x: number, y: number): Promise<number>;
151
335
  createCustom(options: CustomOptions | CustomOptions[], buffer: CanvasResults | Buffer): Promise<Buffer>;
152
336
  createGIF(gifFrames: {
153
337
  background: string;
154
338
  duration: number;
155
- }[], options: GIFOptions): Promise<GIFResults | Buffer | string | Array<{
339
+ }[] | undefined, options: GIFOptions): Promise<GIFResults | Buffer | string | Array<{
156
340
  attachment: NodeJS.ReadableStream | any;
157
341
  name: string;
158
- }> | undefined>;
342
+ }> | {
343
+ gif: Buffer | string;
344
+ static: Buffer;
345
+ } | undefined>;
159
346
  resize(resizeOptions: ResizeOptions): Promise<Buffer>;
160
347
  imgConverter(source: string, newExtension: string): Promise<Buffer>;
161
348
  effects(source: string, filters: ImageFilter[]): Promise<Buffer>;
@@ -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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"}