Fusionner plusieurs images en une seule
🤖/image/merge fusionne plusieurs images en une seule planche de sprites.

Le résultat final sera une planche de sprites, avec les images disposées horizontalement, verticalement ou en grille.
Il est recommandé d’utiliser ce Robot avec 🤖/image/resize afin que vos images aient une taille similaire avant de les fusionner.
Exemple d’utilisation
Fusionner les images téléversées en une seule, avec un espacement de 5 px entre elles sur la planche de sprites :
{
"steps": {
"merged": {
"border": 5,
"robot": "/image/merge",
"use": {
"bundle_steps": true,
"steps": [
":original"
]
}
}
}
}Paramètres
interpolateboolean | Record<string, boolean>Détermine si les Assembly Variables sont interpolées pour chaque champ d’instruction.
Par défaut, la plupart des champs d’instruction des Robots interpolent les Assembly Variables. Définissez ce paramètre sur
falsepour traiter tous les champs d’instruction comme du texte littéral, ou définissez le chemin d’un champ individuel surfalsepour traiter uniquement ce champ comme du texte littéral. Pour les champs propres à un Robot qui sont littéraux par défaut, définissez ce paramètre surtrueou définissez le chemin de ce champ surtruepour réactiver l’interpolation.Utilisez des noms de champs tels que
path, ou des chemins avec points tels queffmpeg.vfpour les objets imbriqués.output_metaRecord<string, boolean> | boolean | Array<string>Permet de spécifier un ensemble de métadonnées dont le calcul est plus coûteux en puissance CPU et qui sont donc désactivées par défaut afin que le traitement de vos Assemblies reste rapide.
Pour les images, vous pouvez ajouter
"has_transparency": truedans cet objet pour déterminer si l’image contient des parties transparentes, et"dominant_colors": truepour extraire de l’image un tableau de codes couleur hexadécimaux.Pour les images, vous pouvez également ajouter
"blurhash": truepour extraire une chaîne BlurHash — une représentation compacte d’un espace réservé pour l’image, utile pour afficher un aperçu flou pendant le chargement de l’image complète.Pour les images,
"thumbhash": trueextrait plutôt un ThumbHash encodé en base64 dansmeta.thumbhash, accompagné demeta.has_alpha(qui indique si un canal alpha existe, même lorsque l’image est entièrement opaque). Il décrit les pixels orientés selon les données EXIF et utilise la première image des images animées. L’extraction est effectuée au mieux : les images de plus de 40 mégapixels, les formats non pris en charge ou un décodage échoué ou limité ne produisent aucun espace réservé. Une extraction réussie ajoute des frais de métadonnées équivalents à 20 % des octets de ce fichier. Aucun supplément ThumbHash ne s’applique lorsque l’option est désactivée ou lorsqu’aucun hash n’est produit.Définissez cette option sur le Step qui produit l’image, par exemple
/upload/handlepour les originaux téléversés ou/image/resizepour les sorties traitées. La définir uniquement sur/transloadit/storene déclenche pas l’extraction : le stockage conserve les métadonnées du Step producteur. Transloadit Storage conserve un hash généré avec sa version immuable et le renvoie dans les résultats stockés et lors des lectures natives de ressources. Les téléversements directs vers S3 ne génèrent pas d’espaces réservés. Un espace réservé contient des informations sur l’image : protégez-le donc avec les mêmes contrôles d’accès que l’image complète.Pour les vidéos, vous pouvez ajouter le paramètre
"colorspace": truepour extraire l’espace colorimétrique de la vidéo de sortie.Pour les vidéos, vous pouvez également ajouter
"interlaced": truepour détecter si la vidéo est entrelacée. Cette option combine l’indicateur ffprobe peu coûteuxfield_orderavec une passe d’échantillonnageidetlimitée sur les premières images de la source, et exposeinterlaced,field_orderainsi qu’un objet de diagnosticinterlace_detectionsousfile.meta. Cette opération est coûteuse en calcul et facturée en conséquence.Pour l’audio, vous pouvez ajouter
"mean_volume": truepour obtenir une valeur unique représentant le volume moyen du fichier audio.Vous pouvez également définir cette option sur
falsepour ignorer l’extraction des métadonnées et accélérer le transcodage.user_metaRecord<string, any>(par défaut :{})Ajoute des métadonnées JSON personnalisées à chaque fichier émis sans modifier son contenu. Les objets et tableaux imbriqués sont pris en charge.
L’héritage dépend du Robot. Les valeurs sont fusionnées avec la valeur
user_metaexistante du fichier de sortie ; le Step actuel remplace les clés de premier niveau correspondantes. Attribuez explicitement les clés requises lorsqu’un Robot crée de nouvelles sorties.Dans les Steps de traitement,
${file.*}désigne la première entrée et${result.*}le fichier émis. Les valeurs sont évaluées pour chaque sortie après l’exécution du Robot, avant l’extraction ultérieure des métadonnées et le stockage temporaire. Sur:original, les valeurs sont évaluées pour chaque téléversement avant l’extraction des métadonnées.Les Steps en aval lisent
${file.user_meta.key}. Consultez Métadonnées personnalisées pour un exemple complet et les règles d’héritage.resultboolean(par défaut :false)Indique si les résultats de ce Step doivent figurer dans l’Assembly Status JSON
queuebatchDéfinir la file d’attente sur « batch » abaisse manuellement la priorité des Jobs de ce Step afin d’éviter de consommer des emplacements prioritaires de Jobs pour des Jobs qui n’ont pas besoin d’un temps d’attente nul dans la file
force_acceptboolean(par défaut :false)Forcer un Robot à accepter un type de fichier qu’il aurait ignoré.
Par défaut, les Robots ignorent les fichiers qu’ils ne connaissent pas. Le Robot 🤖/video/encode, par exemple, ignorera volontiers les images en entrée.
Avec le paramètre
force_acceptdéfini surtrue, vous pouvez forcer les Robots à accepter tous les fichiers qui leur sont envoyés. Cela entraîne généralement des erreurs et ne doit être utilisé que pour le débogage ou pour traiter des cas limites.ignore_errorsboolean | Array<meta | execute>(par défaut :[])Ignore les erreurs pendant certaines phases du traitement.
Si vous définissez cette valeur sur
["meta"], le Robot ignorera les erreurs lors de l’extraction des métadonnées.Si vous définissez cette valeur sur
["execute"], le Robot ignorera les erreurs lors de la phase d’exécution principale.Définir cette valeur sur
trueéquivaut à["meta", "execute"]: les erreurs seront alors ignorées dans les deux phases.usestring | Array<string> | Array<object> | objectIndique quel(s) Step(s) utiliser comme entrée.
- Vous pouvez choisir n’importe quel nom pour les Steps, sauf
":original"(réservé aux téléversements des utilisateurs gérés par Transloadit) - Vous pouvez fournir plusieurs Steps en entrée à l’aide de tableaux :
{ "use": [ ":original", "encoded", "resized" ] } - Vous pouvez également étiqueter les Steps d’entrée avec
aspour transmettre une intention sémantique aux Robots :{ "use": [ { "name": ":original", "as": "image" }, { "name": ":original", "as": "mask" } ] }
AstuceC’est probablement tout ce que vous devez savoir sur
use, mais vous pouvez consulter les cas d’utilisation avancés.- Vous pouvez choisir n’importe quel nom pour les Steps, sauf
formatjpg | png | webp(par défaut :"png")Le format de sortie de l’image modifiée.
directionhorizontal | vertical | grid(par défaut :"horizontal")Spécifie la direction dans laquelle les images sont disposées.
Utilisez
gridpour disposer les entrées de gauche à droite et de haut en bas.S’applique uniquement à la disposition par défaut en planche de sprites. Ce paramètre est ignoré lorsque
effectest défini surpolaroid-stackoumosaic, car ces effets utilisent leurs propres algorithmes de disposition.effectmosaic | polaroid-stackApplique une disposition en collage stylisé au lieu d’une simple planche de sprites horizontale ou verticale.
Prend actuellement en charge
polaroid-stack, qui génère un rendu des entrées sous forme de photos instantanées se chevauchant sur un canevas, etmosaic, qui crée un collage justifié en mosaïque.columnsstring | numberNombre de colonnes de la grille. S’applique uniquement lorsque
directionvautgrid.Si ce paramètre est omis, le nombre de colonnes est calculé automatiquement à partir du nombre d’entrées et du nombre de lignes demandé.
rowsstring | numberNombre de lignes de la grille. S’applique uniquement lorsque
directionvautgrid.Si ce paramètre est omis, le nombre de lignes est calculé automatiquement à partir du nombre d’entrées et du nombre de colonnes demandé.
cell_widthstring | numberLargeur uniforme de chaque cellule de la grille, en pixels. S’applique uniquement lorsque
directionvautgrid.Les images sont redimensionnées pour tenir dans la cellule tout en conservant leur rapport d’aspect.
cell_heightstring | numberHauteur uniforme de chaque cellule de la grille, en pixels. S’applique uniquement lorsque
directionvautgrid.Les images sont redimensionnées pour tenir dans la cellule tout en conservant leur rapport d’aspect.
borderstring | number(par défaut :0)Une valeur entière qui définit l’espacement entre les images sur la planche de sprites.
Une valeur de
10produirait l’espacement maximal entre les images, tandis qu’une valeur de1les placerait côte à côte.Lorsque
effectvautpolaroid-stack, cette valeur définit plutôt la marge intérieure du canevas, afin que les photos situées à la périphérie restent à cette distance, en pixels, du bord.Lorsque
effectvautmosaic, cette valeur définit à la fois la marge intérieure du canevas sur son pourtour et la largeur de la gouttière entre les tuiles voisines.backgroundstring | transparent | none | black | white | red | green | blue |(par défaut :"#fff")Le code hexadécimal ou le nom de la couleur utilisée pour remplir l’arrière-plan (visible uniquement avec une bordure > 1).
Par défaut, l’arrière-plan des images transparentes devient blanc. Définissez ce paramètre sur
noneoutransparentpour obtenir un canevas transparent — définissezformatsurpngouwebppour préserver le canal alpha.Pour savoir comment préserver la transparence pour tous les types d’images, consultez cette démonstration (English).
widthstring | numberLargeur du canevas de sortie en pixels.
Ce paramètre est principalement utilisé par les effets stylisés tels que
polaroid-stacketmosaic.heightstring | numberHauteur du canevas de sortie en pixels.
Ce paramètre est principalement utilisé par les effets stylisés tels que
polaroid-stacketmosaic.seedstring | numberValeur d’initialisation déterministe facultative utilisée par les effets stylisés tels que
polaroid-stacketmosaic.shuffleboolean(par défaut :false)Indique si les effets stylisés tels que
polaroid-stacketmosaicsont autorisés à mélanger l’ordre des entrées avant de les disposer sur le canevas.sort_byauto | basename | import_order(par défaut :"basename")Contrôle l’ordre des entrées regroupées lorsqu’aucun alias numéroté explicite n’est utilisé pour le type d’entrée. Les alias numérotés se terminent par un suffixe numérique tel que
_1.La valeur par défaut
"basename"conserve l’ancien comportement de tri naturel par nom de base.Définissez cette option sur
"import_order"pour préserver l’ordre des Steps d’importation basés sur un tableau lorsque tous les fichiers d’entrée portent des métadonnées d’ordre d’importation complètes."auto"applique la même préférence pour l’ordre d’importation, avec le tri naturel par nom de base comme solution de repli.coveragestring | numberMultiplicateur de surface couverte pour l’effet
polaroid-stack. Contrôle la taille de chaque polaroïd par rapport au canevas et, par conséquent, la proportion du canevas couverte par les photos.La valeur par défaut de
1.5laisse une discrète bordure beige le long de certains bords. Utilisez des valeurs de2.0à2.5pour couvrir le canevas d’un bord à l’autre (les photos se chevauchent davantage). Les valeurs inférieures à1.0produisent des polaroïds plus petits et plus espacés.N’a aucun effet sur le style
mosaicni sur les simples planches de sprites.adaptive_filteringboolean(par défaut :false)Contrôle la compression des images PNG. La valeur
trueréduit la taille des fichiers, mais augmente le temps de traitement. Il est conseillé de laisser cette option désactivée.qualitystring | number(par défaut :100)Contrôle la compression des images JPG, PNG et WebP. Veuillez également consulter 🤖/image/optimize.