Redimensionar imagens em lote
O redimensionamento em lote recebe várias imagens em uma única chamada de API e devolve todas no tamanho que você definiu. É a versão industrial da tarefa que ninguém aguenta fazer à mão: padronizar centenas de fotos de produto, de cadastro ou de acervo de uma vez só.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
Uma chamada, o lote inteiro
Em vez de repetir a mesma operação foto por foto, você envia a lista de imagens em uma única chamada, com uma configuração de tamanho que vale para todas. A tarefa roda de forma assíncrona: a API devolve um task_id na hora, o lote é processado em segundo plano e você busca os resultados quando estiverem prontos. É o formato certo para migrações, cargas de catálogo e qualquer rotina que envolva centenas de arquivos.
Fotos deitadas e em pé no mesmo lote
Um lote real nunca é uniforme: tem foto horizontal, vertical e quadrada misturadas. Por isso a configuração de ajuste vale ouro — você define se cada imagem se encaixa dentro das medidas mantendo a proporção, se preenche o quadro cortando as sobras ou se assume o tamanho exato. A regra escolhida é aplicada de forma idêntica a todas, e é isso que faz o resultado parecer um catálogo, não uma colagem.
Quando usar o lote e quando usar o simples
O lote compensa quando o mesmo padrão vale para muitas imagens: reprocessar um acervo, preparar uma migração de loja, entregar um evento inteiro. Se cada imagem pede uma medida diferente — um banner aqui, uma miniatura ali —, o redimensionamento simples chamado uma vez por arquivo dá mais controle. Os limites por arquivo são os mesmos nos dois casos: até 15 MB e 12 megapixels por imagem.
O preço de processar 500 fotos
A cobrança é por uso: US$ 0,002 pela chamada mais US$ 0,005 por imagem processada. Um lote de 500 fotos custa pouco mais de US$ 2,50; um acervo de 10.000 imagens fica em torno de US$ 50. Sem mensalidade, sem cadastro e sem surpresa: o preço está publicado e a conta é proporcional ao que você processa — nada além disso.
Casos de uso
Migração de loja virtual sem mutirão
A Distribuidora Horizonte Verde S.A. trocou de plataforma de e-commerce, e o novo tema pedia imagens de 1600 px. Em vez de uma semana de trabalho manual, o acervo inteiro passou pelo lote em uma tarde — mesma medida, mesma regra de corte, do primeiro ao último item.
Entrega de fotos de evento
Thiago Barbosa Lima fotografou uma formatura em Recife e precisava mandar 800 fotos em versão de visualização para a comissão escolher. O lote gerou as versões de 1200 px de uma vez, e os originais em alta ficaram reservados para a entrega final.
Cardápio digital atualizado de uma vez
A Padaria Pão Dourado Ltda. refez as fotos dos 60 itens do cardápio. Um único lote deixou todas no mesmo tamanho para o app de pedidos — e o cardápio parou de misturar foto gigante com miniatura espremida.
Rotina mensal de agência
A TecnoSul Soluções Digitais ME recebe dos clientes as fotos do mês para os sites que administra. O lote entrou na rotina: as imagens chegam por pasta compartilhada, saem padronizadas e vão direto para os CMS.
Perguntas frequentes
Existe um número máximo de imagens por lote?
O limite publicado é por arquivo: cada imagem pode ter até 15 MB e 12 megapixels. Como o processamento é assíncrono, lotes grandes não travam nada — você acompanha a tarefa pelo task_id e coleta o resultado quando terminar.
Todas as fotos saem com a mesma medida?
Sim — essa é a proposta: uma configuração única aplicada ao lote inteiro. Se você precisa de medidas diferentes por imagem, o caminho é a capacidade de redimensionamento simples, chamada uma vez por arquivo.
Como acompanho um lote grande?
A chamada devolve um task_id imediatamente. Com ele você consulta o andamento e baixa os resultados quando o processamento termina, sem manter conexão aberta nem ficar esperando na linha.
Qual é o custo real para o meu volume?
US$ 0,002 pela chamada mais US$ 0,005 por imagem. Multiplique pelo seu acervo: 500 fotos saem por pouco mais de US$ 2,50, e não existe assinatura — no mês em que você não processa nada, não paga nada.
As fotos dos meus clientes passam por servidor de vocês?
Passam pelo processamento, sim — é assim que o lote é gerado — e o resultado volta para você pela tarefa. As imagens servem apenas para executar o seu pedido e não alimentam nenhum acervo, o que ajuda quem responde pela LGPD ao tratar foto de gente.
Como eu pago? Aceita Pix?
Por enquanto o pagamento é via PayPal, porque a cobrança é internacional e em dólar — por isso ainda não há Pix. Dá para chamar no WhatsApp ou mandar e-mail e resolver com uma pessoa de verdade, que atende em espanhol ou inglês (escrever em português funciona bem).
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/image/resize-batch \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/imagen.jpg"}'const res = await fetch("https://api.kit.forhosting.com/image/resize-batch", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/imagen.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/resize-batch",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/imagen.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/resize-batch", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/resize-batch", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"image": "https://ejemplo.com/imagen.jpg"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.resize_batch",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 15 |
max_megapixels | 12 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |