@digipair/skill-sharp 0.97.1 → 0.98.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/schema.fr.json CHANGED
@@ -66,74 +66,66 @@
66
66
  "description": "Si l'image a un canal alpha"
67
67
  }
68
68
  }
69
- "width": 1920,
70
- "height": 1080,
71
- "channels": 3,
72
- "format": "jpeg",
73
- "space": "srgb",
74
- "density": 72,
75
- "hasProfile": false,
76
- "hasAlpha": false
77
69
  }
78
70
  }
79
71
  }
80
72
  }
81
73
  }
82
74
  }
83
- }
84
- },
85
- "/stats": {
86
- "post": {
87
- "tags": [
88
- "service"
89
- ],
90
- "summary": "Statistiques",
91
- "description": "Retourne des statistiques sur l’image comme la moyenne ou l’écart-type.",
92
- "parameters": [
93
- {
94
- "name": "content",
95
- "required": true,
96
- "schema": {
97
- "type": "string"
75
+ },
76
+ "/stats": {
77
+ "post": {
78
+ "tags": [
79
+ "service"
80
+ ],
81
+ "summary": "Statistiques",
82
+ "description": "Retourne des statistiques sur l’image comme la moyenne ou l’écart-type.",
83
+ "parameters": [
84
+ {
85
+ "name": "content",
86
+ "required": true,
87
+ "schema": {
88
+ "type": "string"
89
+ }
98
90
  }
99
- }
100
- ],
101
- "responses": {
102
- "200": {
103
- "description": "Objet de statistiques de l'image",
104
- "content": {
105
- "application/json": {
106
- "schema": {
107
- "type": "object",
108
- "properties": {
109
- "channels": {
110
- "type": "array",
111
- "items": {
112
- "type": "object",
113
- "properties": {
114
- "min": {
115
- "type": "number",
116
- "description": "Valeur de pixel minimale"
117
- },
118
- "max": {
119
- "type": "number",
120
- "description": "Valeur de pixel maximale"
121
- },
122
- "sum": {
123
- "type": "number",
124
- "description": "Somme de toutes les valeurs de pixels"
125
- },
126
- "squaresSum": {
127
- "type": "number",
128
- "description": "Somme des valeurs de pixels au carré"
129
- },
130
- "mean": {
131
- "type": "number",
132
- "description": "Valeur moyenne des pixels"
133
- },
134
- "stdev": {
135
- "type": "number",
136
- "description": "Écart-type des valeurs de pixels"
91
+ ],
92
+ "responses": {
93
+ "200": {
94
+ "description": "Objet de statistiques de l'image",
95
+ "content": {
96
+ "application/json": {
97
+ "schema": {
98
+ "type": "object",
99
+ "properties": {
100
+ "channels": {
101
+ "type": "array",
102
+ "items": {
103
+ "type": "object",
104
+ "properties": {
105
+ "min": {
106
+ "type": "number",
107
+ "description": "Valeur de pixel minimale"
108
+ },
109
+ "max": {
110
+ "type": "number",
111
+ "description": "Valeur de pixel maximale"
112
+ },
113
+ "sum": {
114
+ "type": "number",
115
+ "description": "Somme de toutes les valeurs de pixels"
116
+ },
117
+ "squaresSum": {
118
+ "type": "number",
119
+ "description": "Somme des valeurs de pixels au carré"
120
+ },
121
+ "mean": {
122
+ "type": "number",
123
+ "description": "Valeur moyenne des pixels"
124
+ },
125
+ "stdev": {
126
+ "type": "number",
127
+ "description": "Écart-type des valeurs de pixels"
128
+ }
137
129
  }
138
130
  }
139
131
  }
@@ -144,609 +136,868 @@
144
136
  }
145
137
  }
146
138
  }
147
- }
148
- },
149
- "/raw": {
150
- "post": {
151
- "tags": [
152
- "service"
153
- ],
154
- "summary": "Brut (RAW)",
155
- "description": "Retourne le buffer brut de l’image en base64.",
156
- "parameters": [
157
- {
158
- "name": "content",
159
- "required": true,
160
- "schema": {
161
- "type": "string"
139
+ },
140
+ "/raw": {
141
+ "post": {
142
+ "tags": [
143
+ "service"
144
+ ],
145
+ "summary": "Brut (RAW)",
146
+ "description": "Retourne le buffer brut de l’image en base64.",
147
+ "parameters": [
148
+ {
149
+ "name": "content",
150
+ "required": true,
151
+ "schema": {
152
+ "type": "string"
153
+ }
154
+ }
155
+ ],
156
+ "responses": {
157
+ "200": {
158
+ "description": "Buffer brut de l'image en base64 (sans préfixe data URL)",
159
+ "content": {
160
+ "application/json": {
161
+ "schema": {
162
+ "type": "string",
163
+ "description": "Buffer brut de l'image encodé en base64"
164
+ }
165
+ }
166
+ }
167
+ }
168
+ }
169
+ }
170
+ },
171
+ "/resize": {
172
+ "post": {
173
+ "tags": [
174
+ "service"
175
+ ],
176
+ "summary": "Redimensionner",
177
+ "description": "Redimensionne l’image selon la largeur et la hauteur spécifiées.",
178
+ "parameters": [
179
+ {
180
+ "name": "content",
181
+ "required": true,
182
+ "schema": {
183
+ "type": "string"
184
+ }
185
+ },
186
+ {
187
+ "name": "width",
188
+ "required": true,
189
+ "schema": {
190
+ "type": "number"
191
+ }
192
+ },
193
+ {
194
+ "name": "height",
195
+ "required": true,
196
+ "schema": {
197
+ "type": "number"
198
+ }
199
+ },
200
+ {
201
+ "name": "options",
202
+ "required": false,
203
+ "schema": {
204
+ "type": "object"
205
+ }
206
+ }
207
+ ],
208
+ "responses": {
209
+ "200": {
210
+ "description": "Image redimensionnée en tant qu'URL de données encodée en base64",
211
+ "content": {
212
+ "application/json": {
213
+ "schema": {
214
+ "type": "string",
215
+ "description": "Image encodée en base64 avec préfixe data URL"
216
+ }
217
+ }
218
+ }
219
+ }
220
+ }
221
+ }
222
+ },
223
+ "/rotate": {
224
+ "post": {
225
+ "tags": [
226
+ "service"
227
+ ],
228
+ "summary": "Rotation",
229
+ "description": "Fait pivoter l’image (angle optionnel, utilise EXIF si absent).",
230
+ "parameters": [
231
+ {
232
+ "name": "content",
233
+ "required": true,
234
+ "schema": {
235
+ "type": "string"
236
+ }
237
+ },
238
+ {
239
+ "name": "angle",
240
+ "required": false,
241
+ "schema": {
242
+ "type": "number"
243
+ }
244
+ }
245
+ ],
246
+ "responses": {
247
+ "200": {
248
+ "description": "Image pivotée en tant qu'URL de données encodée en base64",
249
+ "content": {
250
+ "application/json": {
251
+ "schema": {
252
+ "type": "string",
253
+ "description": "Image encodée en base64 avec préfixe data URL"
254
+ }
255
+ }
256
+ }
257
+ }
258
+ }
259
+ }
260
+ },
261
+ "/extract": {
262
+ "post": {
263
+ "tags": [
264
+ "service"
265
+ ],
266
+ "summary": "Rogner",
267
+ "description": "Extrait une portion de l’image.",
268
+ "parameters": [
269
+ {
270
+ "name": "content",
271
+ "required": true,
272
+ "schema": {
273
+ "type": "string"
274
+ }
275
+ },
276
+ {
277
+ "name": "left",
278
+ "required": true,
279
+ "schema": {
280
+ "type": "number"
281
+ }
282
+ },
283
+ {
284
+ "name": "top",
285
+ "required": true,
286
+ "schema": {
287
+ "type": "number"
288
+ }
289
+ },
290
+ {
291
+ "name": "width",
292
+ "required": true,
293
+ "schema": {
294
+ "type": "number"
295
+ }
296
+ },
297
+ {
298
+ "name": "height",
299
+ "required": true,
300
+ "schema": {
301
+ "type": "number"
302
+ }
303
+ }
304
+ ],
305
+ "responses": {
306
+ "200": {
307
+ "description": "Région d'image extraite en tant qu'URL de données encodée en base64",
308
+ "content": {
309
+ "application/json": {
310
+ "schema": {
311
+ "type": "string",
312
+ "description": "Image encodée en base64 avec préfixe data URL"
313
+ }
314
+ }
315
+ }
316
+ }
317
+ }
318
+ }
319
+ },
320
+ "/flip": {
321
+ "post": {
322
+ "tags": [
323
+ "service"
324
+ ],
325
+ "summary": "Miroir vertical",
326
+ "description": "Retourne l’image verticalement.",
327
+ "parameters": [
328
+ {
329
+ "name": "content",
330
+ "required": true,
331
+ "schema": {
332
+ "type": "string"
333
+ }
334
+ }
335
+ ],
336
+ "responses": {
337
+ "200": {
338
+ "description": "Image pivotée verticalement en tant qu'URL de données encodée en base64",
339
+ "content": {
340
+ "application/json": {
341
+ "schema": {
342
+ "type": "string",
343
+ "description": "Image encodée en base64 avec préfixe data URL"
344
+ }
345
+ }
346
+ }
347
+ }
348
+ }
349
+ }
350
+ },
351
+ "/flop": {
352
+ "post": {
353
+ "tags": [
354
+ "service"
355
+ ],
356
+ "summary": "Miroir horizontal",
357
+ "description": "Retourne l’image horizontalement.",
358
+ "parameters": [
359
+ {
360
+ "name": "content",
361
+ "required": true,
362
+ "schema": {
363
+ "type": "string"
364
+ }
365
+ }
366
+ ],
367
+ "responses": {
368
+ "200": {
369
+ "description": "Image pivotée horizontalement en tant qu'URL de données encodée en base64",
370
+ "content": {
371
+ "application/json": {
372
+ "schema": {
373
+ "type": "string",
374
+ "description": "Image encodée en base64 avec préfixe data URL"
375
+ }
376
+ }
377
+ }
378
+ }
379
+ }
380
+ }
381
+ },
382
+ "/autoOrient": {
383
+ "post": {
384
+ "tags": [
385
+ "service"
386
+ ],
387
+ "summary": "Orientation automatique",
388
+ "description": "Corrige l’orientation de l’image en fonction des métadonnées EXIF.",
389
+ "parameters": [
390
+ {
391
+ "name": "content",
392
+ "required": true,
393
+ "schema": {
394
+ "type": "string"
395
+ }
396
+ }
397
+ ],
398
+ "responses": {
399
+ "200": {
400
+ "description": "Image auto-orientée en tant qu'URL de données encodée en base64",
401
+ "content": {
402
+ "application/json": {
403
+ "schema": {
404
+ "type": "string",
405
+ "description": "Image encodée en base64 avec préfixe data URL"
406
+ }
407
+ }
408
+ }
409
+ }
410
+ }
411
+ }
412
+ },
413
+ "/grayscale": {
414
+ "post": {
415
+ "tags": [
416
+ "service"
417
+ ],
418
+ "summary": "Niveaux de gris",
419
+ "description": "Convertit l’image en niveaux de gris.",
420
+ "parameters": [
421
+ {
422
+ "name": "content",
423
+ "required": true,
424
+ "schema": {
425
+ "type": "string"
426
+ }
427
+ }
428
+ ],
429
+ "responses": {
430
+ "200": {
431
+ "description": "Image en niveaux de gris en tant qu'URL de données encodée en base64",
432
+ "content": {
433
+ "application/json": {
434
+ "schema": {
435
+ "type": "string",
436
+ "description": "Image encodée en base64 avec préfixe data URL"
437
+ }
438
+ }
439
+ }
440
+ }
441
+ }
442
+ }
443
+ },
444
+ "/linear": {
445
+ "post": {
446
+ "tags": [
447
+ "service"
448
+ ],
449
+ "summary": "Linéaire",
450
+ "description": "Applique une transformation linéaire à l’image.",
451
+ "parameters": [
452
+ {
453
+ "name": "content",
454
+ "required": true,
455
+ "schema": {
456
+ "type": "string"
457
+ }
458
+ },
459
+ {
460
+ "name": "multiplier",
461
+ "required": true,
462
+ "schema": {
463
+ "type": "number"
464
+ }
465
+ },
466
+ {
467
+ "name": "offset",
468
+ "required": true,
469
+ "schema": {
470
+ "type": "number"
471
+ }
472
+ }
473
+ ],
474
+ "responses": {
475
+ "200": {
476
+ "description": "Image transformée linéairement en tant qu'URL de données encodée en base64",
477
+ "content": {
478
+ "application/json": {
479
+ "schema": {
480
+ "type": "string",
481
+ "description": "Image encodée en base64 avec préfixe data URL"
482
+ }
483
+ }
484
+ }
485
+ }
486
+ }
487
+ }
488
+ },
489
+ "/threshold": {
490
+ "post": {
491
+ "tags": [
492
+ "service"
493
+ ],
494
+ "summary": "Seuil",
495
+ "description": "Applique un seuil à l’image pour la convertir en noir et blanc.",
496
+ "parameters": [
497
+ {
498
+ "name": "content",
499
+ "required": true,
500
+ "schema": {
501
+ "type": "string"
502
+ }
503
+ },
504
+ {
505
+ "name": "level",
506
+ "required": false,
507
+ "schema": {
508
+ "type": "number",
509
+ "default": 128
510
+ }
511
+ },
512
+ {
513
+ "name": "option",
514
+ "required": false,
515
+ "schema": {
516
+ "type": "object"
517
+ }
518
+ }
519
+ ],
520
+ "responses": {
521
+ "200": {
522
+ "description": "Image en niveaux de gris en tant qu'URL de données encodée en base64",
523
+ "content": {
524
+ "application/json": {
525
+ "schema": {
526
+ "type": "string",
527
+ "description": "Image encodée en base64 avec préfixe data URL"
528
+ }
529
+ }
530
+ }
531
+ }
532
+ }
533
+ }
534
+ },
535
+ "/negate": {
536
+ "post": {
537
+ "tags": [
538
+ "service"
539
+ ],
540
+ "summary": "Negate",
541
+ "description": "Inverts the image colors",
542
+ "parameters": [
543
+ {
544
+ "name": "content",
545
+ "required": true,
546
+ "schema": {
547
+ "type": "string"
548
+ }
549
+ }
550
+ ],
551
+ "responses": {
552
+ "200": {
553
+ "description": "Image avec couleurs inversées en tant qu'URL de données encodée en base64",
554
+ "content": {
555
+ "application/json": {
556
+ "schema": {
557
+ "type": "string",
558
+ "description": "Image encodée en base64 avec préfixe data URL"
559
+ }
560
+ }
561
+ }
562
+ }
563
+ }
564
+ }
565
+ },
566
+ "/tint": {
567
+ "post": {
568
+ "tags": [
569
+ "service"
570
+ ],
571
+ "summary": "Teinte",
572
+ "description": "Applique une teinte colorée à l’image.",
573
+ "parameters": [
574
+ {
575
+ "name": "content",
576
+ "required": true,
577
+ "schema": {
578
+ "type": "string"
579
+ }
580
+ },
581
+ {
582
+ "name": "r",
583
+ "required": true,
584
+ "schema": {
585
+ "type": "number"
586
+ }
587
+ },
588
+ {
589
+ "name": "g",
590
+ "required": true,
591
+ "schema": {
592
+ "type": "number"
593
+ }
594
+ },
595
+ {
596
+ "name": "b",
597
+ "required": true,
598
+ "schema": {
599
+ "type": "number"
600
+ }
601
+ }
602
+ ],
603
+ "responses": {
604
+ "200": {
605
+ "description": "Image teintée en couleur en tant qu'URL de données encodée en base64",
606
+ "content": {
607
+ "application/json": {
608
+ "schema": {
609
+ "type": "string",
610
+ "description": "Image encodée en base64 avec préfixe data URL"
611
+ }
612
+ }
613
+ }
614
+ }
615
+ }
616
+ }
617
+ },
618
+ "/modulate": {
619
+ "post": {
620
+ "tags": [
621
+ "service"
622
+ ],
623
+ "summary": "Modulation",
624
+ "description": "Ajuste la luminosité, la saturation et la teinte.",
625
+ "parameters": [
626
+ {
627
+ "name": "content",
628
+ "required": true,
629
+ "schema": {
630
+ "type": "string"
631
+ }
632
+ },
633
+ {
634
+ "name": "brightness",
635
+ "required": false,
636
+ "schema": {
637
+ "type": "number"
638
+ }
639
+ },
640
+ {
641
+ "name": "saturation",
642
+ "required": false,
643
+ "schema": {
644
+ "type": "number"
645
+ }
646
+ },
647
+ {
648
+ "name": "hue",
649
+ "required": false,
650
+ "schema": {
651
+ "type": "number"
652
+ }
653
+ }
654
+ ],
655
+ "responses": {
656
+ "200": {
657
+ "description": "Image modulée avec luminosité/saturation/teinte ajustées en tant qu'URL de données encodée en base64",
658
+ "content": {
659
+ "application/json": {
660
+ "schema": {
661
+ "type": "string",
662
+ "description": "Image encodée en base64 avec préfixe data URL"
663
+ }
664
+ }
665
+ }
666
+ }
667
+ }
668
+ }
669
+ },
670
+ "/blur": {
671
+ "post": {
672
+ "tags": [
673
+ "service"
674
+ ],
675
+ "summary": "Flou",
676
+ "description": "Applique un flou à l’image.",
677
+ "parameters": [
678
+ {
679
+ "name": "content",
680
+ "required": true,
681
+ "schema": {
682
+ "type": "string"
683
+ }
684
+ },
685
+ {
686
+ "name": "radius",
687
+ "required": false,
688
+ "schema": {
689
+ "type": "number"
690
+ }
162
691
  }
163
- }
164
- ],
165
- "responses": {
166
- "200": {
167
- "description": "Buffer brut de l'image en base64 (sans préfixe data URL)",
168
- "content": {
169
- "application/json": {
170
- "schema": {
171
- "type": "string",
172
- "description": "Buffer brut de l'image encodé en base64"
692
+ ],
693
+ "responses": {
694
+ "200": {
695
+ "description": "Image floue en tant qu'URL de données encodée en base64",
696
+ "content": {
697
+ "application/json": {
698
+ "schema": {
699
+ "type": "string",
700
+ "description": "Image encodée en base64 avec préfixe data URL"
701
+ }
173
702
  }
174
703
  }
175
704
  }
176
705
  }
177
706
  }
178
- }
179
- },
180
- "/resize": {
181
- "post": {
182
- "tags": [
183
- "service"
184
- ],
185
- "summary": "Redimensionner",
186
- "description": "Redimensionne l’image selon la largeur et la hauteur spécifiées.",
187
- "parameters": [
188
- {
189
- "name": "content",
190
- "required": true,
191
- "schema": {
192
- "type": "string"
193
- }
194
- },
195
- {
196
- "name": "width",
197
- "required": true,
198
- "schema": {
199
- "type": "number"
200
- }
201
- },
202
- {
203
- "name": "height",
204
- "required": true,
205
- "schema": {
206
- "type": "number"
207
- }
208
- },
209
- {
210
- "name": "options",
211
- "required": false,
212
- "schema": {
213
- "type": "object"
214
- }
215
- }
216
- ]
217
- }
218
- },
219
- "/rotate": {
220
- "post": {
221
- "tags": [
222
- "service"
223
- ],
224
- "summary": "Rotation",
225
- "description": "Fait pivoter l’image (angle optionnel, utilise EXIF si absent).",
226
- "parameters": [
227
- {
228
- "name": "content",
229
- "required": true,
230
- "schema": {
231
- "type": "string"
232
- }
233
- },
234
- {
235
- "name": "angle",
236
- "required": false,
237
- "schema": {
238
- "type": "number"
239
- }
240
- }
241
- ]
242
- }
243
- },
244
- "/extract": {
245
- "post": {
246
- "tags": [
247
- "service"
248
- ],
249
- "summary": "Rogner",
250
- "description": "Extrait une portion de l’image.",
251
- "parameters": [
252
- {
253
- "name": "content",
254
- "required": true,
255
- "schema": {
256
- "type": "string"
257
- }
258
- },
259
- {
260
- "name": "left",
261
- "required": true,
262
- "schema": {
263
- "type": "number"
264
- }
265
- },
266
- {
267
- "name": "top",
268
- "required": true,
269
- "schema": {
270
- "type": "number"
271
- }
272
- },
273
- {
274
- "name": "width",
275
- "required": true,
276
- "schema": {
277
- "type": "number"
278
- }
279
- },
280
- {
281
- "name": "height",
282
- "required": true,
283
- "schema": {
284
- "type": "number"
285
- }
286
- }
287
- ]
288
- }
289
- },
290
- "/flip": {
291
- "post": {
292
- "tags": [
293
- "service"
294
- ],
295
- "summary": "Miroir vertical",
296
- "description": "Retourne l’image verticalement.",
297
- "parameters": [
298
- {
299
- "name": "content",
300
- "required": true,
301
- "schema": {
302
- "type": "string"
303
- }
304
- }
305
- ]
306
- }
307
- },
308
- "/flop": {
309
- "post": {
310
- "tags": [
311
- "service"
312
- ],
313
- "summary": "Miroir horizontal",
314
- "description": "Retourne l’image horizontalement.",
315
- "parameters": [
316
- {
317
- "name": "content",
318
- "required": true,
319
- "schema": {
320
- "type": "string"
321
- }
322
- }
323
- ]
324
- }
325
- },
326
- "/autoOrient": {
327
- "post": {
328
- "tags": [
329
- "service"
330
- ],
331
- "summary": "Orientation automatique",
332
- "description": "Corrige l’orientation de l’image en fonction des métadonnées EXIF.",
333
- "parameters": [
334
- {
335
- "name": "content",
336
- "required": true,
337
- "schema": {
338
- "type": "string"
339
- }
340
- }
341
- ]
342
- }
343
- },
344
- "/grayscale": {
345
- "post": {
346
- "tags": [
347
- "service"
348
- ],
349
- "summary": "Niveaux de gris",
350
- "description": "Convertit l’image en niveaux de gris.",
351
- "parameters": [
352
- {
353
- "name": "content",
354
- "required": true,
355
- "schema": {
356
- "type": "string"
707
+ },
708
+ "/sharpen": {
709
+ "post": {
710
+ "tags": [
711
+ "service"
712
+ ],
713
+ "summary": "Netteté",
714
+ "description": "Accentue les contours de l’image.",
715
+ "parameters": [
716
+ {
717
+ "name": "content",
718
+ "required": true,
719
+ "schema": {
720
+ "type": "string"
721
+ }
357
722
  }
358
- }
359
- ]
360
- }
361
- },
362
- "/linear": {
363
- "post": {
364
- "tags": [
365
- "service"
366
- ],
367
- "summary": "Linéaire",
368
- "description": "Applique une transformation linéaire à l’image.",
369
- "parameters": [
370
- {
371
- "name": "content",
372
- "required": true,
373
- "schema": {
374
- "type": "string"
375
- }
376
- },
377
- {
378
- "name": "multiplier",
379
- "required": true,
380
- "schema": {
381
- "type": "number"
382
- }
383
- },
384
- {
385
- "name": "offset",
386
- "required": true,
387
- "schema": {
388
- "type": "number"
723
+ ],
724
+ "responses": {
725
+ "200": {
726
+ "description": "Image affinée en tant qu'URL de données encodée en base64",
727
+ "content": {
728
+ "application/json": {
729
+ "schema": {
730
+ "type": "string",
731
+ "description": "Image encodée en base64 avec préfixe data URL"
732
+ }
733
+ }
734
+ }
389
735
  }
390
736
  }
391
- ]
392
- }
393
- },
394
- "/threshold": {
395
- "post": {
396
- "tags": [
397
- "service"
398
- ],
399
- "summary": "Seuil",
400
- "description": "Applique un seuil à l’image pour la convertir en noir et blanc.",
401
- "parameters": [
402
- {
403
- "name": "content",
404
- "required": true,
405
- "schema": {
406
- "type": "string"
407
- }
408
- },
409
- {
410
- "name": "level",
411
- "required": false,
412
- "schema": {
413
- "type": "number",
414
- "default": 128
415
- }
416
- },
417
- {
418
- "name": "option",
419
- "required": false,
420
- "schema": {
421
- "type": "object"
737
+ }
738
+ },
739
+ "/toFormat": {
740
+ "post": {
741
+ "tags": [
742
+ "service"
743
+ ],
744
+ "summary": "Conversion de format",
745
+ "description": "Convertit l’image vers un autre format.",
746
+ "parameters": [
747
+ {
748
+ "name": "content",
749
+ "required": true,
750
+ "schema": {
751
+ "type": "string"
752
+ }
753
+ },
754
+ {
755
+ "name": "format",
756
+ "required": true,
757
+ "description": "jpeg, png, webp, avif",
758
+ "schema": {
759
+ "type": "string",
760
+ "enum": [
761
+ "jpeg",
762
+ "png",
763
+ "webp",
764
+ "avif"
765
+ ]
766
+ }
422
767
  }
423
- }
424
- ]
425
- }
426
- },
427
- "/tint": {
428
- "post": {
429
- "tags": [
430
- "service"
431
- ],
432
- "summary": "Teinte",
433
- "description": "Applique une teinte colorée à l’image.",
434
- "parameters": [
435
- {
436
- "name": "content",
437
- "required": true,
438
- "schema": {
439
- "type": "string"
440
- }
441
- },
442
- {
443
- "name": "r",
444
- "required": true,
445
- "schema": {
446
- "type": "number"
447
- }
448
- },
449
- {
450
- "name": "g",
451
- "required": true,
452
- "schema": {
453
- "type": "number"
454
- }
455
- },
456
- {
457
- "name": "b",
458
- "required": true,
459
- "schema": {
460
- "type": "number"
768
+ ],
769
+ "responses": {
770
+ "200": {
771
+ "description": "Image convertie au format spécifié en tant qu'URL de données encodée en base64",
772
+ "content": {
773
+ "application/json": {
774
+ "schema": {
775
+ "type": "string",
776
+ "description": "Image encodée en base64 avec préfixe data URL dans le format spécifié"
777
+ }
778
+ }
779
+ }
461
780
  }
462
781
  }
463
- ]
464
- }
465
- },
466
- "/modulate": {
467
- "post": {
468
- "tags": [
469
- "service"
470
- ],
471
- "summary": "Modulation",
472
- "description": "Ajuste la luminosité, la saturation et la teinte.",
473
- "parameters": [
474
- {
475
- "name": "content",
476
- "required": true,
477
- "schema": {
478
- "type": "string"
479
- }
480
- },
481
- {
482
- "name": "brightness",
483
- "required": false,
484
- "schema": {
485
- "type": "number"
486
- }
487
- },
488
- {
489
- "name": "saturation",
490
- "required": false,
491
- "schema": {
492
- "type": "number"
493
- }
494
- },
495
- {
496
- "name": "hue",
497
- "required": false,
498
- "schema": {
499
- "type": "number"
782
+ }
783
+ },
784
+ "/jpeg": {
785
+ "post": {
786
+ "tags": [
787
+ "service"
788
+ ],
789
+ "summary": "Exporter en JPEG",
790
+ "description": "Convertit l’image en format JPEG avec qualité personnalisable.",
791
+ "parameters": [
792
+ {
793
+ "name": "content",
794
+ "required": true,
795
+ "schema": {
796
+ "type": "string"
797
+ }
798
+ },
799
+ {
800
+ "name": "quality",
801
+ "required": false,
802
+ "schema": {
803
+ "type": "number",
804
+ "default": 80
805
+ }
500
806
  }
501
- }
502
- ]
503
- }
504
- },
505
- "/blur": {
506
- "post": {
507
- "tags": [
508
- "service"
509
- ],
510
- "summary": "Flou",
511
- "description": "Applique un flou à l’image.",
512
- "parameters": [
513
- {
514
- "name": "content",
515
- "required": true,
516
- "schema": {
517
- "type": "string"
518
- }
519
- },
520
- {
521
- "name": "radius",
522
- "required": false,
523
- "schema": {
524
- "type": "number"
807
+ ],
808
+ "responses": {
809
+ "200": {
810
+ "description": "Image JPEG encodée en base64 avec préfixe data URL",
811
+ "content": {
812
+ "application/json": {
813
+ "schema": {
814
+ "type": "string",
815
+ "description": "Image JPEG encodée en base64 avec préfixe data URL"
816
+ }
817
+ }
818
+ }
525
819
  }
526
820
  }
527
- ]
528
- }
529
- },
530
- "/sharpen": {
531
- "post": {
532
- "tags": [
533
- "service"
534
- ],
535
- "summary": "Netteté",
536
- "description": "Accentue les contours de l’image.",
537
- "parameters": [
538
- {
539
- "name": "content",
540
- "required": true,
541
- "schema": {
542
- "type": "string"
821
+ }
822
+ },
823
+ "/png": {
824
+ "post": {
825
+ "tags": [
826
+ "service"
827
+ ],
828
+ "summary": "Exporter en PNG",
829
+ "description": "Convertit l’image en format PNG avec niveau de compression personnalisé.",
830
+ "parameters": [
831
+ {
832
+ "name": "content",
833
+ "required": true,
834
+ "schema": {
835
+ "type": "string"
836
+ }
837
+ },
838
+ {
839
+ "name": "compressionLevel",
840
+ "required": false,
841
+ "schema": {
842
+ "type": "number",
843
+ "default": 6
844
+ }
543
845
  }
544
- }
545
- ]
546
- }
547
- },
548
- "/toFormat": {
549
- "post": {
550
- "tags": [
551
- "service"
552
- ],
553
- "summary": "Conversion de format",
554
- "description": "Convertit l’image vers un autre format.",
555
- "parameters": [
556
- {
557
- "name": "content",
558
- "required": true,
559
- "schema": {
560
- "type": "string"
561
- }
562
- },
563
- {
564
- "name": "format",
565
- "required": true,
566
- "description": "jpeg, png, webp, avif",
567
- "schema": {
568
- "type": "string",
569
- "enum": [
570
- "jpeg",
571
- "png",
572
- "webp",
573
- "avif"
574
- ]
846
+ ],
847
+ "responses": {
848
+ "200": {
849
+ "description": "Image PNG encodée en base64 avec préfixe data URL",
850
+ "content": {
851
+ "application/json": {
852
+ "schema": {
853
+ "type": "string",
854
+ "description": "Image PNG encodée en base64 avec préfixe data URL"
855
+ }
856
+ }
857
+ }
575
858
  }
576
859
  }
577
- ]
578
- }
579
- },
580
- "/jpeg": {
581
- "post": {
582
- "tags": [
583
- "service"
584
- ],
585
- "summary": "Exporter en JPEG",
586
- "description": "Convertit l’image en format JPEG avec qualité personnalisable.",
587
- "parameters": [
588
- {
589
- "name": "content",
590
- "required": true,
591
- "schema": {
592
- "type": "string"
593
- }
594
- },
595
- {
596
- "name": "quality",
597
- "required": false,
598
- "schema": {
599
- "type": "number",
600
- "default": 80
860
+ }
861
+ },
862
+ "/webp": {
863
+ "post": {
864
+ "tags": [
865
+ "service"
866
+ ],
867
+ "summary": "Exporter en WebP",
868
+ "description": "Convertit l’image en format WebP avec qualité personnalisable.",
869
+ "parameters": [
870
+ {
871
+ "name": "content",
872
+ "required": true,
873
+ "schema": {
874
+ "type": "string"
875
+ }
876
+ },
877
+ {
878
+ "name": "quality",
879
+ "required": false,
880
+ "schema": {
881
+ "type": "number",
882
+ "default": 80
883
+ }
601
884
  }
602
- }
603
- ]
604
- }
605
- },
606
- "/png": {
607
- "post": {
608
- "tags": [
609
- "service"
610
- ],
611
- "summary": "Exporter en PNG",
612
- "description": "Convertit l’image en format PNG avec niveau de compression personnalisé.",
613
- "parameters": [
614
- {
615
- "name": "content",
616
- "required": true,
617
- "schema": {
618
- "type": "string"
619
- }
620
- },
621
- {
622
- "name": "compressionLevel",
623
- "required": false,
624
- "schema": {
625
- "type": "number",
626
- "default": 6
885
+ ],
886
+ "responses": {
887
+ "200": {
888
+ "description": "Image WebP encodée en base64 avec préfixe data URL",
889
+ "content": {
890
+ "application/json": {
891
+ "schema": {
892
+ "type": "string",
893
+ "description": "Image WebP encodée en base64 avec préfixe data URL"
894
+ }
895
+ }
896
+ }
627
897
  }
628
898
  }
629
- ]
630
- }
631
- },
632
- "/webp": {
633
- "post": {
634
- "tags": [
635
- "service"
636
- ],
637
- "summary": "Exporter en WebP",
638
- "description": "Convertit l’image en format WebP avec qualité personnalisable.",
639
- "parameters": [
640
- {
641
- "name": "content",
642
- "required": true,
643
- "schema": {
644
- "type": "string"
645
- }
646
- },
647
- {
648
- "name": "quality",
649
- "required": false,
650
- "schema": {
651
- "type": "number",
652
- "default": 80
899
+ }
900
+ },
901
+ "/avif": {
902
+ "post": {
903
+ "tags": [
904
+ "service"
905
+ ],
906
+ "summary": "Exporter en AVIF",
907
+ "description": "Convertit l’image en format AVIF avec qualité personnalisable.",
908
+ "parameters": [
909
+ {
910
+ "name": "content",
911
+ "required": true,
912
+ "schema": {
913
+ "type": "string"
914
+ }
915
+ },
916
+ {
917
+ "name": "quality",
918
+ "required": false,
919
+ "schema": {
920
+ "type": "number",
921
+ "default": 50
922
+ }
653
923
  }
654
- }
655
- ]
656
- }
657
- },
658
- "/avif": {
659
- "post": {
660
- "tags": [
661
- "service"
662
- ],
663
- "summary": "Exporter en AVIF",
664
- "description": "Convertit l’image en format AVIF avec qualité personnalisable.",
665
- "parameters": [
666
- {
667
- "name": "content",
668
- "required": true,
669
- "schema": {
670
- "type": "string"
671
- }
672
- },
673
- {
674
- "name": "quality",
675
- "required": false,
676
- "schema": {
677
- "type": "number",
678
- "default": 50
924
+ ],
925
+ "responses": {
926
+ "200": {
927
+ "description": "Image AVIF encodée en base64 avec préfixe data URL",
928
+ "content": {
929
+ "application/json": {
930
+ "schema": {
931
+ "type": "string",
932
+ "description": "Image AVIF encodée en base64 avec préfixe data URL"
933
+ }
934
+ }
935
+ }
679
936
  }
680
937
  }
681
- ]
682
- }
683
- },
684
- "/composite": {
685
- "post": {
686
- "tags": [
687
- "service"
688
- ],
689
- "summary": "Superposition",
690
- "description": "Superpose une ou plusieurs images (ex. : watermark).",
691
- "parameters": [
692
- {
693
- "name": "content",
694
- "required": true,
695
- "schema": {
696
- "type": "string"
697
- }
698
- },
699
- {
700
- "name": "overlays",
701
- "required": true,
702
- "description": "Liste d’éléments { input (base64), top, left }",
703
- "schema": {
704
- "type": "array",
705
- "items": {
706
- "type": "object",
707
- "properties": {
708
- "input": {
709
- "type": "string"
710
- },
711
- "top": {
712
- "type": "number"
938
+ }
939
+ },
940
+ "/composite": {
941
+ "post": {
942
+ "tags": [
943
+ "service"
944
+ ],
945
+ "summary": "Superposition",
946
+ "description": "Superpose une ou plusieurs images (ex. : watermark).",
947
+ "parameters": [
948
+ {
949
+ "name": "content",
950
+ "required": true,
951
+ "schema": {
952
+ "type": "string"
953
+ }
954
+ },
955
+ {
956
+ "name": "overlays",
957
+ "required": true,
958
+ "description": "Liste d’éléments { input (base64), top, left }",
959
+ "schema": {
960
+ "type": "array",
961
+ "items": {
962
+ "type": "object",
963
+ "properties": {
964
+ "input": {
965
+ "type": "string"
966
+ },
967
+ "top": {
968
+ "type": "number"
969
+ },
970
+ "left": {
971
+ "type": "number"
972
+ }
713
973
  },
714
- "left": {
715
- "type": "number"
716
- }
717
- },
718
- "required": [
719
- "input",
720
- "top",
721
- "left"
722
- ]
974
+ "required": [
975
+ "input",
976
+ "top",
977
+ "left"
978
+ ]
979
+ }
723
980
  }
724
981
  }
725
- }
726
- ],
727
- "responses": {
728
- "200": {
729
- "description": "Image composite avec superpositions en data URL base64",
730
- "content": {
731
- "application/json": {
732
- "schema": {
733
- "type": "string",
734
- "description": "Image encodée en base64 avec préfixe data URL"
982
+ ],
983
+ "responses": {
984
+ "200": {
985
+ "description": "Image composite avec superpositions en data URL base64",
986
+ "content": {
987
+ "application/json": {
988
+ "schema": {
989
+ "type": "string",
990
+ "description": "Image encodée en base64 avec préfixe data URL"
991
+ }
735
992
  }
736
993
  }
737
994
  }
738
995
  }
739
996
  }
740
997
  }
741
- }
742
- },
743
- "components": {
744
- "schemas": {
745
- "ImageResponse": {
746
- "type": "string",
747
- "description": "Image encodée en base64 avec préfixe data URL"
748
- }
749
- }
750
- },
751
- "x-scene-blocks": {}
998
+ },
999
+ "components": {
1000
+ "schemas": {}
1001
+ },
1002
+ "x-scene-blocks": {}
752
1003
  }