Mesclar várias imagens em uma única imagem
🤖/image/merge combina várias imagens em uma única folha de sprites.

O resultado final será uma spritesheet, com as imagens exibidas horizontalmente, verticalmente ou em um layout de grade.
Recomenda-se usar este Robot com 🤖/image/resize para que suas imagens tenham um tamanho semelhante antes de mesclá-las.
Exemplo de uso
Combine as imagens enviadas por upload em uma só, com um espaço de 5 px entre elas na folha de sprites:
{
"steps": {
"merged": {
"border": 5,
"robot": "/image/merge",
"use": {
"bundle_steps": true,
"steps": [
":original"
]
}
}
}
}Parâmetros
interpolateboolean | Record<string, boolean>Controla se as Assembly Variables são interpoladas em campos individuais de instruções.
Por padrão, a maioria dos campos de instruções dos Robots interpola Assembly Variables. Defina isso como
falsepara tratar todos os campos de instruções como texto literal, ou defina o caminho de um campo individual comofalsepara tratar apenas esse campo como texto literal. Para campos específicos de um Robot que são literais por padrão, defina isso comotrueou defina o caminho desse campo comotruepara voltar a usar a interpolação.Use nomes de campos como
pathou caminhos com pontos comoffmpeg.vfpara objetos aninhados.output_metaRecord<string, boolean> | boolean | Array<string>Permite especificar um conjunto de metadados cujo cálculo exige mais CPU e que, por isso, vem desativado por padrão para manter o processamento das suas Assemblies rápido.
Para imagens, você pode adicionar
"has_transparency": trueneste objeto para extrair se a imagem contém partes transparentes e"dominant_colors": truepara extrair um array de códigos de cores hexadecimais da imagem.Para imagens, você também pode adicionar
"blurhash": truepara extrair uma string BlurHash — uma representação compacta de um placeholder da imagem, útil para exibir uma prévia desfocada enquanto a imagem completa carrega.Para vídeos, você pode adicionar o parâmetro
"colorspace": truepara extrair o espaço de cores do vídeo de saída.Para vídeos, você também pode adicionar
"interlaced": truepara detectar se o vídeo é entrelaçado. Isso combina a flag computacionalmente baratafield_orderdo ffprobe com uma passagem de amostragemidetlimitada sobre os primeiros quadros da origem, expondointerlaced,field_ordere um objeto de diagnósticointerlace_detectionemfile.meta. Isso é computacionalmente caro e cobrado de acordo.Para áudio, você pode adicionar
"mean_volume": truepara obter um único valor que representa o volume médio do arquivo de áudio.Você também pode definir isso como
falsepara pular a extração de metadados e acelerar a transcodificação.user_metaRecord<string, any>(padrão:{})Adiciona metadados JSON personalizados a cada arquivo emitido sem modificar seu conteúdo. Objetos e arrays aninhados são suportados.
A herança depende do Robot. Os valores são mesclados com o
user_metaexistente no arquivo de saída; o Step atual substitui as chaves de nível superior com o mesmo nome. Atribua explicitamente as chaves necessárias quando um Robot criar novas saídas.Nos Steps de processamento,
${file.*}se refere à primeira entrada e${result.*}ao arquivo emitido. Os valores são avaliados para cada saída após a execução do Robot, antes da extração subsequente de metadados e do armazenamento temporário. Em:original, os valores são avaliados para cada upload antes da extração de metadados.Os Steps subsequentes leem
${file.user_meta.key}. Consulte Metadados personalizados para ver um exemplo completo e as regras de herança.resultboolean(padrão:false)Se os resultados deste Step devem estar presentes no Assembly Status JSON
queuebatchDefinir a fila como “batch” rebaixa manualmente a prioridade dos Jobs deste Step, para evitar o consumo de vagas prioritárias de Jobs em Jobs que não precisam de tempo zero de espera na fila
force_acceptboolean(padrão:false)Forçar um Robot a aceitar um tipo de arquivo que ele teria ignorado.
Por padrão, os Robots ignoram arquivos que não conhecem. O 🤖/video/encode, por exemplo, ignora tranquilamente imagens de entrada.
Com o parâmetro
force_acceptdefinido comotrue, você pode forçar os Robots a aceitar todos os arquivos enviados a eles. Isso normalmente leva a erros e só deve ser usado para depuração ou para lidar com casos extremos.ignore_errorsboolean | Array<meta | execute>(padrão:[])Ignorar erros durante fases específicas do processamento.
Definir isso como
["meta"]fará com que o Robot ignore erros durante a extração de metadados.Definir isso como
["execute"]fará com que o Robot ignore erros durante a fase principal de execução.Definir isso como
trueequivale a["meta", "execute"]e fará com que erros sejam ignorados nas duas fases.usestring | Array<string> | Array<object> | objectEspecifica quais Steps usar como entrada.
- Você pode escolher qualquer nome para os Steps, exceto
":original"(reservado para uploads de usuários tratados pela Transloadit) - Você pode fornecer vários Steps como entrada usando arrays:
{ "use": [ ":original", "encoded", "resized" ] } - Você também pode marcar os Steps de entrada com
aspara transmitir intenção semântica aos Robots:{ "use": [ { "name": ":original", "as": "image" }, { "name": ":original", "as": "mask" } ] }
DicaProvavelmente é tudo o que você precisa saber sobre
use, mas você pode ver os casos de uso avançados.- Você pode escolher qualquer nome para os Steps, exceto
formatjpg | png | webp(padrão:"png")O formato de saída da imagem modificada.
directionhorizontal | vertical | grid(padrão:"horizontal")Especifica a direção em que as imagens são exibidas.
Use
gridpara organizar as entradas da esquerda para a direita e de cima para baixo.Aplica-se apenas ao layout padrão de spritesheet. É ignorado quando
effecté definido comopolaroid-stackoumosaic, pois esses efeitos usam seus próprios algoritmos de layout.effectmosaic | polaroid-stackAplica um layout de colagem estilizado em vez de uma spritesheet horizontal ou vertical simples.
Atualmente, oferece suporte a
polaroid-stack, que renderiza as entradas como fotos instantâneas sobrepostas em uma tela, e amosaic, que cria uma colagem de blocos com alinhamento justificado.columnsstring | numberNúmero de colunas no layout de grade. Aplica-se apenas quando
directionégrid.Se omitido, o número de colunas é calculado automaticamente a partir do número de entradas e de linhas solicitadas.
rowsstring | numberNúmero de linhas no layout de grade. Aplica-se apenas quando
directionégrid.Se omitido, o número de linhas é calculado automaticamente a partir do número de entradas e de colunas solicitadas.
cell_widthstring | numberLargura uniforme de cada célula da grade em pixels. Aplica-se apenas quando
directionégrid.As imagens são redimensionadas para caber na célula, preservando a proporção.
cell_heightstring | numberAltura uniforme de cada célula da grade em pixels. Aplica-se apenas quando
directionégrid.As imagens são redimensionadas para caber na célula, preservando a proporção.
borderstring | number(padrão:0)Um valor inteiro que define o espaçamento entre as imagens na spritesheet.
Um valor de
10faria com que as imagens tivessem o maior espaçamento entre si, enquanto um valor de1colocaria as imagens lado a lado.Quando
effectépolaroid-stack, esse valor é usado como preenchimento interno da tela, de modo que as fotos mais externas mantenham essa quantidade de pixels de distância da borda.Quando
effectémosaic, esse valor é usado tanto como preenchimento interno nas bordas da tela quanto como largura do espaçamento entre blocos vizinhos.backgroundstring | transparent | none | black | white | red | green | blue |(padrão:"#fff")O código hexadecimal ou o nome da cor usada para preencher o fundo (exibido apenas com uma borda > 1).
Por padrão, o fundo de imagens transparentes é alterado para branco. Defina como
noneoutransparentpara uma tela transparente; definaformatcomopngouwebppara preservar o canal alfa.Para detalhes sobre como preservar a transparência em todos os tipos de imagem, veja esta demonstração (English).
widthstring | numberA largura da tela de saída em pixels.
É usada principalmente por efeitos estilizados como
polaroid-stackemosaic.heightstring | numberA altura da tela de saída em pixels.
É usada principalmente por efeitos estilizados como
polaroid-stackemosaic.seedstring | numberSemente determinística opcional usada por efeitos estilizados como
polaroid-stackemosaic.shuffleboolean(padrão:false)Define se efeitos estilizados como
polaroid-stackemosaicpodem embaralhar a ordem das entradas antes de organizar a tela.sort_byauto | basename | import_order(padrão:"basename")Controla como as entradas agrupadas são ordenadas quando nenhum alias numerado explícito para o tipo de entrada é usado. Aliases numerados terminam com um sufixo numérico, como
_1.O padrão
"basename"mantém o comportamento legado de ordenação natural por basename.Defina como
"import_order"para preservar a ordem dos Steps de importação baseados em array quando todos os arquivos de entrada carregarem metadados completos de ordem de importação."auto"tem a mesma preferência de ordem de importação, com ordenação natural por basename como fallback.coveragestring | numberMultiplicador de cobertura de área para o efeito
polaroid-stack. Controla o tamanho de cada polaroid em relação à tela e, consequentemente, quanto da tela é coberto pelas fotos.O valor padrão de
1.5deixa uma borda bege sutil ao longo de algumas extremidades. Use de2.0a2.5para cobertura de ponta a ponta (as fotos se sobrepõem mais). Valores abaixo de1.0produzem polaroids menores e mais espaçadas.Não tem efeito no estilo
mosaicnem em spritesheets simples.adaptive_filteringboolean(padrão:false)Controla a compressão de imagens PNG. Definir como
trueresulta em arquivos menores, mas aumenta o tempo de processamento. Recomendamos manter essa opção desativada.qualitystring | number(padrão:100)Controla a compressão de imagens JPG, PNG e WebP. Consulte também 🤖/image/optimize.