html2canvas-pro 2.1.0 → 2.1.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.
Files changed (186) hide show
  1. package/dist/html2canvas-pro.esm.js +21 -7
  2. package/dist/html2canvas-pro.esm.js.map +1 -1
  3. package/dist/html2canvas-pro.js +21 -7
  4. package/dist/html2canvas-pro.js.map +1 -1
  5. package/dist/html2canvas-pro.min.js +3 -3
  6. package/dist/lib/core/cache-storage.js +2 -2
  7. package/dist/lib/core/features.js +2 -2
  8. package/dist/lib/render/canvas/background-renderer.js +6 -0
  9. package/dist/lib/render/canvas/canvas-renderer.js +5 -1
  10. package/dist/lib/render/canvas/foreignobject-renderer.js +5 -1
  11. package/package.json +3 -11
  12. package/dist/lib/invariant.js +0 -9
  13. package/dist/types/invariant.d.ts +0 -1
  14. package/src/__tests__/index.ts +0 -99
  15. package/src/config.ts +0 -107
  16. package/src/core/__mocks__/cache-storage.ts +0 -1
  17. package/src/core/__mocks__/context.ts +0 -19
  18. package/src/core/__mocks__/features.ts +0 -8
  19. package/src/core/__mocks__/logger.ts +0 -17
  20. package/src/core/__tests__/cache-storage.test.ts +0 -205
  21. package/src/core/__tests__/cache-storage.ts +0 -278
  22. package/src/core/__tests__/logger.ts +0 -29
  23. package/src/core/__tests__/validator.ts +0 -359
  24. package/src/core/bitwise.ts +0 -1
  25. package/src/core/cache-storage.ts +0 -315
  26. package/src/core/context.ts +0 -31
  27. package/src/core/debugger.ts +0 -32
  28. package/src/core/features.ts +0 -222
  29. package/src/core/logger.ts +0 -64
  30. package/src/core/origin-checker.ts +0 -57
  31. package/src/core/performance-monitor.ts +0 -241
  32. package/src/core/render-element.ts +0 -272
  33. package/src/core/util.ts +0 -1
  34. package/src/core/validator.ts +0 -593
  35. package/src/css/index.ts +0 -427
  36. package/src/css/layout/__mocks__/bounds.ts +0 -6
  37. package/src/css/layout/bounds.ts +0 -79
  38. package/src/css/layout/text.ts +0 -161
  39. package/src/css/property-descriptor.ts +0 -49
  40. package/src/css/property-descriptors/__tests__/background-tests.ts +0 -65
  41. package/src/css/property-descriptors/__tests__/clip-path.test.ts +0 -280
  42. package/src/css/property-descriptors/__tests__/font-family.ts +0 -25
  43. package/src/css/property-descriptors/__tests__/image-rendering-integration.test.ts +0 -153
  44. package/src/css/property-descriptors/__tests__/image-rendering-performance.test.ts +0 -175
  45. package/src/css/property-descriptors/__tests__/image-rendering.test.ts +0 -72
  46. package/src/css/property-descriptors/__tests__/paint-order.ts +0 -87
  47. package/src/css/property-descriptors/__tests__/text-shadow.ts +0 -94
  48. package/src/css/property-descriptors/__tests__/transform-tests.ts +0 -18
  49. package/src/css/property-descriptors/background-clip.ts +0 -30
  50. package/src/css/property-descriptors/background-color.ts +0 -9
  51. package/src/css/property-descriptors/background-image.ts +0 -27
  52. package/src/css/property-descriptors/background-origin.ts +0 -31
  53. package/src/css/property-descriptors/background-position.ts +0 -38
  54. package/src/css/property-descriptors/background-repeat.ts +0 -44
  55. package/src/css/property-descriptors/background-size.ts +0 -27
  56. package/src/css/property-descriptors/border-color.ts +0 -13
  57. package/src/css/property-descriptors/border-radius.ts +0 -19
  58. package/src/css/property-descriptors/border-style.ts +0 -34
  59. package/src/css/property-descriptors/border-width.ts +0 -20
  60. package/src/css/property-descriptors/box-shadow.ts +0 -60
  61. package/src/css/property-descriptors/clip-path.ts +0 -271
  62. package/src/css/property-descriptors/color.ts +0 -9
  63. package/src/css/property-descriptors/content.ts +0 -26
  64. package/src/css/property-descriptors/counter-increment.ts +0 -43
  65. package/src/css/property-descriptors/counter-reset.ts +0 -36
  66. package/src/css/property-descriptors/direction.ts +0 -23
  67. package/src/css/property-descriptors/display.ts +0 -117
  68. package/src/css/property-descriptors/duration.ts +0 -14
  69. package/src/css/property-descriptors/float.ts +0 -29
  70. package/src/css/property-descriptors/font-family.ts +0 -38
  71. package/src/css/property-descriptors/font-size.ts +0 -9
  72. package/src/css/property-descriptors/font-style.ts +0 -25
  73. package/src/css/property-descriptors/font-variant.ts +0 -12
  74. package/src/css/property-descriptors/font-weight.ts +0 -26
  75. package/src/css/property-descriptors/image-rendering.ts +0 -33
  76. package/src/css/property-descriptors/letter-spacing.ts +0 -25
  77. package/src/css/property-descriptors/line-break.ts +0 -22
  78. package/src/css/property-descriptors/line-height.ts +0 -22
  79. package/src/css/property-descriptors/list-style-image.ts +0 -19
  80. package/src/css/property-descriptors/list-style-position.ts +0 -22
  81. package/src/css/property-descriptors/list-style-type.ts +0 -179
  82. package/src/css/property-descriptors/margin.ts +0 -13
  83. package/src/css/property-descriptors/mix-blend-mode.ts +0 -35
  84. package/src/css/property-descriptors/object-fit.ts +0 -39
  85. package/src/css/property-descriptors/opacity.ts +0 -15
  86. package/src/css/property-descriptors/overflow-wrap.ts +0 -22
  87. package/src/css/property-descriptors/overflow.ts +0 -34
  88. package/src/css/property-descriptors/padding.ts +0 -14
  89. package/src/css/property-descriptors/paint-order.ts +0 -42
  90. package/src/css/property-descriptors/position.ts +0 -30
  91. package/src/css/property-descriptors/quotes.ts +0 -57
  92. package/src/css/property-descriptors/rotate.ts +0 -34
  93. package/src/css/property-descriptors/text-align.ts +0 -26
  94. package/src/css/property-descriptors/text-decoration-color.ts +0 -9
  95. package/src/css/property-descriptors/text-decoration-line.ts +0 -38
  96. package/src/css/property-descriptors/text-decoration-style.ts +0 -32
  97. package/src/css/property-descriptors/text-decoration-thickness.ts +0 -30
  98. package/src/css/property-descriptors/text-overflow.ts +0 -23
  99. package/src/css/property-descriptors/text-shadow.ts +0 -52
  100. package/src/css/property-descriptors/text-transform.ts +0 -27
  101. package/src/css/property-descriptors/text-underline-offset.ts +0 -27
  102. package/src/css/property-descriptors/transform-origin.ts +0 -29
  103. package/src/css/property-descriptors/transform.ts +0 -74
  104. package/src/css/property-descriptors/visibility.ts +0 -25
  105. package/src/css/property-descriptors/webkit-line-clamp.ts +0 -30
  106. package/src/css/property-descriptors/webkit-text-stroke-color.ts +0 -8
  107. package/src/css/property-descriptors/webkit-text-stroke-width.ts +0 -15
  108. package/src/css/property-descriptors/word-break.ts +0 -25
  109. package/src/css/property-descriptors/writing-mode.ts +0 -37
  110. package/src/css/property-descriptors/z-index.ts +0 -27
  111. package/src/css/syntax/__tests__/tokernizer-tests.ts +0 -29
  112. package/src/css/syntax/parser.ts +0 -188
  113. package/src/css/syntax/tokenizer.ts +0 -822
  114. package/src/css/type-descriptor.ts +0 -7
  115. package/src/css/types/__tests__/color-tests.ts +0 -147
  116. package/src/css/types/__tests__/image-tests.ts +0 -239
  117. package/src/css/types/angle.ts +0 -86
  118. package/src/css/types/color-math.ts +0 -22
  119. package/src/css/types/color-spaces/a98.ts +0 -86
  120. package/src/css/types/color-spaces/p3.ts +0 -92
  121. package/src/css/types/color-spaces/pro-photo.ts +0 -87
  122. package/src/css/types/color-spaces/rec2020.ts +0 -90
  123. package/src/css/types/color-spaces/srgb.ts +0 -87
  124. package/src/css/types/color-utilities.ts +0 -452
  125. package/src/css/types/color.ts +0 -485
  126. package/src/css/types/functions/-prefix-linear-gradient.ts +0 -35
  127. package/src/css/types/functions/-prefix-radial-gradient.ts +0 -106
  128. package/src/css/types/functions/-webkit-gradient.ts +0 -69
  129. package/src/css/types/functions/__tests__/radial-gradient.ts +0 -69
  130. package/src/css/types/functions/counter.ts +0 -511
  131. package/src/css/types/functions/gradient.ts +0 -206
  132. package/src/css/types/functions/linear-gradient.ts +0 -28
  133. package/src/css/types/functions/radial-gradient.ts +0 -101
  134. package/src/css/types/image.ts +0 -120
  135. package/src/css/types/index.ts +0 -1
  136. package/src/css/types/length-percentage.ts +0 -137
  137. package/src/css/types/length.ts +0 -7
  138. package/src/css/types/time.ts +0 -20
  139. package/src/dom/__mocks__/document-cloner.ts +0 -22
  140. package/src/dom/__tests__/dom-normalizer.test.ts +0 -133
  141. package/src/dom/__tests__/element-container.test.ts +0 -129
  142. package/src/dom/document-cloner.ts +0 -929
  143. package/src/dom/dom-normalizer.ts +0 -133
  144. package/src/dom/element-container.ts +0 -75
  145. package/src/dom/elements/li-element-container.ts +0 -10
  146. package/src/dom/elements/ol-element-container.ts +0 -12
  147. package/src/dom/elements/select-element-container.ts +0 -10
  148. package/src/dom/elements/textarea-element-container.ts +0 -9
  149. package/src/dom/node-parser.ts +0 -177
  150. package/src/dom/node-type-guards.ts +0 -70
  151. package/src/dom/replaced-elements/canvas-element-container.ts +0 -15
  152. package/src/dom/replaced-elements/iframe-element-container.ts +0 -55
  153. package/src/dom/replaced-elements/image-element-container.ts +0 -16
  154. package/src/dom/replaced-elements/index.ts +0 -5
  155. package/src/dom/replaced-elements/input-element-container.ts +0 -105
  156. package/src/dom/replaced-elements/pseudo-elements.ts +0 -0
  157. package/src/dom/replaced-elements/svg-element-container.ts +0 -23
  158. package/src/dom/text-container.ts +0 -42
  159. package/src/global.d.ts +0 -19
  160. package/src/index.ts +0 -82
  161. package/src/invariant.ts +0 -5
  162. package/src/options.ts +0 -55
  163. package/src/render/__tests__/object-fit.test.ts +0 -85
  164. package/src/render/background.ts +0 -298
  165. package/src/render/bezier-curve.ts +0 -47
  166. package/src/render/border.ts +0 -165
  167. package/src/render/bound-curves.ts +0 -388
  168. package/src/render/box-sizing.ts +0 -31
  169. package/src/render/canvas/__tests__/background-renderer.test.ts +0 -72
  170. package/src/render/canvas/__tests__/border-renderer.test.ts +0 -24
  171. package/src/render/canvas/__tests__/effects-renderer.test.ts +0 -32
  172. package/src/render/canvas/__tests__/text-renderer.test.ts +0 -471
  173. package/src/render/canvas/background-renderer.ts +0 -271
  174. package/src/render/canvas/border-renderer.ts +0 -224
  175. package/src/render/canvas/canvas-path.ts +0 -31
  176. package/src/render/canvas/canvas-renderer.ts +0 -641
  177. package/src/render/canvas/effects-renderer.ts +0 -130
  178. package/src/render/canvas/foreignobject-renderer.ts +0 -53
  179. package/src/render/canvas/text-renderer.ts +0 -700
  180. package/src/render/effects.ts +0 -75
  181. package/src/render/font-metrics.ts +0 -72
  182. package/src/render/object-fit.ts +0 -100
  183. package/src/render/path.ts +0 -37
  184. package/src/render/renderer-interface.ts +0 -28
  185. package/src/render/stacking-context.ts +0 -386
  186. package/src/render/vector.ts +0 -19
@@ -1,92 +0,0 @@
1
- /**
2
- * Display-P3 related functions
3
- */
4
-
5
- import { srgbLinear2rgb } from './srgb';
6
- import { multiplyMatrices, packXYZ } from '../color-utilities';
7
-
8
- /**
9
- * Convert P3 Linear to xyz
10
- *
11
- * @param p3l
12
- */
13
- export const p3LinearToXyz = (p3l: [number, number, number]): [number, number, number] => {
14
- return multiplyMatrices(
15
- [
16
- 0.4865709486482162, 0.26566769316909306, 0.1982172852343625, 0.2289745640697488, 0.6917385218365064,
17
- 0.079286914093745, 0.0, 0.04511338185890264, 1.043944368900976
18
- ],
19
- p3l
20
- );
21
- };
22
- /**
23
- * Convert XYZ to P3 Linear
24
- *
25
- * @param xyz
26
- */
27
- export const xyzToP3Linear = (xyz: [number, number, number]): [number, number, number] => {
28
- return multiplyMatrices(
29
- [
30
- 2.493496911941425, -0.9313836179191239, -0.40271078445071684, -0.8294889695615747, 1.7626640603183463,
31
- 0.023624685841943577, 0.03584583024378447, -0.07617238926804182, 0.9568845240076872
32
- ],
33
- xyz
34
- );
35
- };
36
-
37
- /**
38
- * Convert P3 to P3 linear
39
- *
40
- * @param p3
41
- */
42
- export const p32p3Linear = (p3: [number, number, number]): number[] => {
43
- return p3.map((c: number) => {
44
- const sign = c < 0 ? -1 : 1,
45
- abs = c * sign;
46
-
47
- if (abs <= 0.04045) {
48
- return c / 12.92;
49
- }
50
-
51
- return sign * ((c + 0.055) / 1.055) ** 2.4 || 0;
52
- });
53
- };
54
-
55
- /**
56
- * Convert P3 Linear to P3
57
- *
58
- * @param p3l
59
- */
60
- export const p3Linear2p3 = (p3l: [number, number, number]): number[] => {
61
- return srgbLinear2rgb(p3l);
62
- };
63
-
64
- /**
65
- * Convert P3 to XYZ
66
- *
67
- * @param args
68
- */
69
- export const p3ToXYZ = (args: number[]): number[] => {
70
- const p3_linear = p32p3Linear([args[0], args[1], args[2]]);
71
- return p3LinearToXyz([p3_linear[0], p3_linear[1], p3_linear[2]]);
72
- };
73
-
74
- /**
75
- * Convert XYZ to P3
76
- *
77
- * @param args
78
- */
79
- export const p3FromXYZ = (args: [number, number, number, number]): [number, number, number, number] => {
80
- const [r, g, b] = p3Linear2p3(xyzToP3Linear([args[0], args[1], args[2]]));
81
- return [r, g, b, args[3]];
82
- };
83
-
84
- /**
85
- * Convert P3 to SRGB and Pack
86
- *
87
- * @param args
88
- */
89
- export const convertP3 = (args: number[]): number => {
90
- const xyz = p3ToXYZ([args[0], args[1], args[2]]);
91
- return packXYZ([xyz[0], xyz[1], xyz[2], args[3]]);
92
- };
@@ -1,87 +0,0 @@
1
- /**
2
- * Pro Photo related functions
3
- */
4
-
5
- import { d50toD65, d65toD50, multiplyMatrices, packXYZ } from '../color-utilities';
6
-
7
- /**
8
- * Convert linear-light display-p3 to XYZ D65
9
- *
10
- * @param p3
11
- */
12
- export const proPhotoLinearToXyz = (p3: [number, number, number]): [number, number, number] => {
13
- return multiplyMatrices(
14
- [
15
- 0.7977666449006423, 0.13518129740053308, 0.0313477341283922, 0.2880748288194013, 0.711835234241873,
16
- 0.00008993693872564, 0.0, 0.0, 0.8251046025104602
17
- ],
18
- p3
19
- );
20
- };
21
-
22
- /**
23
- * Convert XYZ D65 to linear-light display-p3
24
- *
25
- * @param xyz
26
- */
27
- export const xyzToProPhotoLinear = (xyz: [number, number, number]): [number, number, number] => {
28
- return multiplyMatrices(
29
- [
30
- 1.3457868816471583, -0.25557208737979464, -0.05110186497554526, -0.5446307051249019, 1.5082477428451468,
31
- 0.02052744743642139, 0.0, 0.0, 1.2119675456389452
32
- ],
33
- xyz
34
- );
35
- };
36
-
37
- /**
38
- * Convert Pro-Photo to Pro-Photo Linear
39
- *
40
- * @param p3
41
- */
42
- export const proPhotoToProPhotoLinear = (p3: [number, number, number]): number[] => {
43
- return p3.map((c: number) => {
44
- return c < 16 / 512 ? c / 16 : c ** 1.8;
45
- });
46
- };
47
-
48
- /**
49
- * Convert Pro-Photo Linear to Pro-Photo
50
- *
51
- * @param p3
52
- */
53
- export const proPhotoLinearToProPhoto = (p3: [number, number, number]): number[] => {
54
- return p3.map((c: number) => {
55
- return c > 1 / 512 ? c ** (1 / 1.8) : c * 16;
56
- });
57
- };
58
-
59
- /**
60
- * Convert Pro-Photo to XYZ
61
- *
62
- * @param args
63
- */
64
- export const proPhotoToXYZ = (args: number[]): [number, number, number] => {
65
- const prophoto_linear = proPhotoToProPhotoLinear([args[0], args[1], args[2]]);
66
- return d50toD65(proPhotoLinearToXyz([prophoto_linear[0], prophoto_linear[1], prophoto_linear[2]]));
67
- };
68
-
69
- /**
70
- * Convert XYZ to Pro-Photo
71
- *
72
- * @param args
73
- */
74
- export const proPhotoFromXYZ = (args: [number, number, number, number]): [number, number, number, number] => {
75
- const [r, g, b] = proPhotoLinearToProPhoto(xyzToProPhotoLinear(d65toD50([args[0], args[1], args[2]])));
76
- return [r, g, b, args[3]];
77
- };
78
-
79
- /**
80
- * Convert Pro-Photo to XYZ and Pack
81
- *
82
- * @param args
83
- */
84
- export const convertProPhoto = (args: number[]): number => {
85
- const xyz = proPhotoToXYZ([args[0], args[1], args[2]]);
86
- return packXYZ([xyz[0], xyz[1], xyz[2], args[3]]);
87
- };
@@ -1,90 +0,0 @@
1
- /**
2
- * REC2020 related functions
3
- */
4
-
5
- import { multiplyMatrices, packXYZ } from '../color-utilities';
6
-
7
- const _a = 1.09929682680944;
8
- const _b = 0.018053968510807;
9
-
10
- /**
11
- * Convert rec2020 to rec2020 linear
12
- *
13
- * @param rgb
14
- */
15
- export const rec20202rec2020Linear = (rgb: [number, number, number]): number[] => {
16
- return rgb.map(function (c) {
17
- return c < _b * 4.5 ? c / 4.5 : Math.pow((c + _a - 1) / _a, 1 / 0.45);
18
- });
19
- };
20
-
21
- /**
22
- * Convert rec2020 linear to rec2020
23
- *
24
- * @param rgb
25
- */
26
- export const rec2020Linear2rec2020 = (rgb: [number, number, number]): number[] => {
27
- return rgb.map(function (c) {
28
- return c >= _b ? _a * Math.pow(c, 0.45) - (_a - 1) : 4.5 * c;
29
- });
30
- };
31
-
32
- /**
33
- * Convert rec2020 linear to XYZ D65
34
- *
35
- * @param rec
36
- */
37
- export const rec2020LinearToXyz = (rec: [number, number, number]): [number, number, number] => {
38
- return multiplyMatrices(
39
- [
40
- 0.6369580483012914, 0.14461690358620832, 0.1688809751641721, 0.2627002120112671, 0.6779980715188708,
41
- 0.05930171646986196, 0.0, 0.028072693049087428, 1.060985057710791
42
- ],
43
- rec
44
- );
45
- };
46
-
47
- /**
48
- * Convert XYZ D65 to rec2020 linear
49
- *
50
- * @param xyz
51
- */
52
- export const xyzToRec2020Linear = (xyz: [number, number, number]): [number, number, number] => {
53
- return multiplyMatrices(
54
- [
55
- 1.716651187971268, -0.355670783776392, -0.25336628137366, -0.666684351832489, 1.616481236634939,
56
- 0.0157685458139111, 0.017639857445311, -0.042770613257809, 0.942103121235474
57
- ],
58
- xyz
59
- );
60
- };
61
-
62
- /**
63
- * Convert Rec2020 to XYZ
64
- *
65
- * @param args
66
- */
67
- export const rec2020ToXYZ = (args: number[]): [number, number, number] => {
68
- const rec2020_linear = rec20202rec2020Linear([args[0], args[1], args[2]]);
69
- return rec2020LinearToXyz([rec2020_linear[0], rec2020_linear[1], rec2020_linear[2]]);
70
- };
71
-
72
- /**
73
- * Convert XYZ to Rec2020
74
- *
75
- * @param args
76
- */
77
- export const rec2020FromXYZ = (args: [number, number, number, number]): [number, number, number, number] => {
78
- const [r, g, b] = rec2020Linear2rec2020(xyzToRec2020Linear([args[0], args[1], args[2]]));
79
- return [r, g, b, args[3]];
80
- };
81
-
82
- /**
83
- * Convert Rec2020 to SRGB and Pack
84
- *
85
- * @param args
86
- */
87
- export const convertRec2020 = (args: number[]): number => {
88
- const xyz = rec2020ToXYZ([args[0], args[1], args[2]]);
89
- return packXYZ([xyz[0], xyz[1], xyz[2], args[3]]);
90
- };
@@ -1,87 +0,0 @@
1
- /**
2
- * SRGB related functions
3
- */
4
-
5
- import { clamp, multiplyMatrices } from '../color-math';
6
-
7
- /**
8
- * Convert XYZ to linear-light sRGB
9
- *
10
- * @param xyz
11
- */
12
- export const xyz2rgbLinear = (xyz: [number, number, number]): [number, number, number] => {
13
- return multiplyMatrices(
14
- [
15
- 3.2409699419045226, -1.537383177570094, -0.4986107602930034, -0.9692436362808796, 1.8759675015077202,
16
- 0.04155505740717559, 0.05563007969699366, -0.20397695888897652, 1.0569715142428786
17
- ],
18
- xyz
19
- );
20
- };
21
-
22
- /**
23
- * Convert XYZ to linear-light sRGB
24
- *
25
- * @param xyz
26
- */
27
- export const rgbLinear2xyz = (xyz: [number, number, number]): [number, number, number] => {
28
- return multiplyMatrices(
29
- [
30
- 0.41239079926595934, 0.357584339383878, 0.1804807884018343, 0.21263900587151027, 0.715168678767756,
31
- 0.07219231536073371, 0.01933081871559182, 0.11919477979462598, 0.9505321522496607
32
- ],
33
- xyz
34
- );
35
- };
36
-
37
- /**
38
- * Convert sRGB to RGB
39
- *
40
- * @param rgb
41
- */
42
- export const srgbLinear2rgb = (rgb: [number, number, number]): number[] => {
43
- return rgb.map((c: number) => {
44
- const sign = c < 0 ? -1 : 1,
45
- abs = Math.abs(c);
46
-
47
- return abs > 0.0031308 ? sign * (1.055 * abs ** (1 / 2.4) - 0.055) : 12.92 * c;
48
- });
49
- };
50
-
51
- /**
52
- * Convert RGB to sRGB
53
- *
54
- * @param rgb
55
- */
56
- export const rgb2rgbLinear = (rgb: [number, number, number]): number[] => {
57
- return rgb.map((c: number) => {
58
- const sign = c < 0 ? -1 : 1,
59
- abs = Math.abs(c);
60
-
61
- return abs <= 0.04045 ? c / 12.92 : sign * ((abs + 0.055) / 1.055) ** 2.4;
62
- });
63
- };
64
-
65
- /**
66
- * XYZ to SRGB
67
- *
68
- * @param args
69
- */
70
- export const srgbFromXYZ = (args: [number, number, number, number]): [number, number, number, number] => {
71
- const [r, g, b] = srgbLinear2rgb(xyz2rgbLinear([args[0], args[1], args[2]]));
72
- return [r, g, b, args[3]];
73
- };
74
-
75
- /**
76
- * XYZ to SRGB-Linear
77
- * @param args
78
- */
79
- export const srgbLinearFromXYZ = (args: [number, number, number, number]): [number, number, number, number] => {
80
- const [r, g, b] = xyz2rgbLinear([args[0], args[1], args[2]]);
81
- return [
82
- clamp(Math.round(r * 255), 0, 255),
83
- clamp(Math.round(g * 255), 0, 255),
84
- clamp(Math.round(b * 255), 0, 255),
85
- args[3]
86
- ];
87
- };