Ajustar imagem com barras
Encaixe uma imagem em uma área fixa sem cortar nem esticar: uma foto de 1920 por 1080 em um quadrado de 1000 por 1000 fica com 1000 por 562, com barras de 219 pixels em cima e embaixo. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Largura de origem
- 1.920
- Altura de origem
- 1.080
- Largura da tela
- 1.000
- Altura da tela
- 1.000
- Escala
- 0,5208333333
- Fit
- letterbox
Encaixe uma imagem em uma tela fixa sem estimativas, distorções ou perda de conteúdo. Informe largura e altura da origem e as dimensões da tela para receber a escala uniforme, o tamanho final em pixels e as barras exatas em cima, à direita, embaixo e à esquerda. O resultado diferencia barras horizontais, barras verticais e proporção exata, sendo útil para vídeos, apresentações, pipelines de imagem e prévias responsivas.
Preserve a imagem inteira e sua forma
Um ajuste do tipo conter faz uma promessa rigorosa: todos os pixels da origem permanecem visíveis dentro da tela de destino. A calculadora compara as proporções, escolhe o menor fator entre os eixos horizontal e vertical e aplica o mesmo fator às duas dimensões. Assim, círculos continuam circulares, rostos não ficam comprimidos e nenhuma parte da composição é cortada.
A largura e a altura calculadas são números inteiros de pixels que nunca ultrapassam a tela. Quando uma dimensão proporcional exata fica entre pixels, o eixo limitante ocupa a borda e o outro é arredondado para baixo; arredondar para cima poderia deixar uma linha ou coluna fora da tela. A resposta também informa a escala matemática anterior ao arredondamento, útil para configurar programas gráficos ou comparar telas alternativas.
As quatro dimensões precisam ser números inteiros positivos. Uma dimensão zero não possui proporção utilizável e gera uma entrada inválida, em vez de um resultado infinito ou indefinido.
Entenda as barras horizontais e verticais
O objeto de barras fornece o preenchimento em pixels para cima, direita, embaixo e esquerda. Uma imagem larga em uma tela relativamente alta deixa espaço vertical e cria barras acima e abaixo. Uma imagem alta ou estreita em uma tela relativamente larga deixa espaço horizontal, criando barras à esquerda e à direita.
Se origem e tela tiverem a mesma proporção, o ajuste será exato e todas as barras serão zero. A imagem fica centralizada em qualquer situação. Quando o total livre é par, as barras opostas têm o mesmo tamanho.
Quando é ímpar, a barra superior ou esquerda recebe a parte menor, e a inferior ou direita recebe o pixel restante. Essa convenção determinística faz com que as barras completem exatamente as dimensões da tela e evita posições ambíguas de meio pixel. Você pode usar os valores diretamente como preenchimento, deslocamentos ou coordenadas: a origem fica em esquerda e topo, e o retângulo termina antes das barras direita e inferior.
Use o resultado em fluxos de mídia
Use os números antes de redimensionar, e não depois da exportação. Crie ou escolha a tela de destino, redimensione a origem para a largura e altura retornadas com o método de reamostragem desejado e posicione-a nos deslocamentos esquerdo e superior. Preencha o restante com cor sólida, transparência, extensão desfocada ou outro fundo.
O cálculo não examina bytes, escolhe cores nem faz reamostragem; ele é uma etapa geométrica independente de formato e biblioteca. Em lotes, valide as dimensões cedo e armazene o resultado com a solicitação para que todas as etapas usem a mesma geometria. A mesma entrada sempre produz dimensões e barras idênticas, adequadas a testes e compilações reproduzíveis.
Casos de uso
Preparar quadros de vídeo
Ajuste filmagens ou artes a uma resolução fixa e obtenha as barras exatas antes da codificação.
Criar prévias sem cortes
Centralize produtos, portfólios ou documentos em cartões uniformes sem perder conteúdo.
Planejar apresentações
Calcule o retângulo da imagem e o preenchimento equilibrado para slides, painéis e telas.
Perguntas frequentes
Quanto custa o cálculo?
O cálculo também pode ser feito grátis no navegador.
A imagem é cortada ou distorcida?
Não. Uma escala uniforme preserva toda a imagem, e barras ocupam o espaço livre.
Por que barras opostas podem diferir em um pixel?
Um espaço ímpar não pode ser dividido igualmente em pixels inteiros. O pixel extra fica à direita ou embaixo.
O que acontece quando as proporções coincidem?
O ajuste é indicado como exato, a imagem preenche a tela e as quatro barras são zero.
Posso usar zero para uma dimensão desconhecida?
Não. Todas as dimensões devem ser inteiros positivos, pois zero não define uma proporção válida.
A capacidade redimensiona o arquivo da imagem?
Não. Ela calcula apenas a geometria. Use o tamanho e os deslocamentos em seu renderizador preferido.
Ferramentas relacionadas
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/letterbox-fit \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"source_width":1920,"source_height":1080,"canvas_width":1000,"canvas_height":1000}'const res = await fetch("https://api.kit.forhosting.com/image/letterbox-fit", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"source_width": 1920,
"source_height": 1080,
"canvas_width": 1000,
"canvas_height": 1000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/letterbox-fit",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"source_width": 1920,
"source_height": 1080,
"canvas_width": 1000,
"canvas_height": 1000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/letterbox-fit", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"source_width":1920,"source_height":1080,"canvas_width":1000,"canvas_height":1000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"source_width":1920,"source_height":1080,"canvas_width":1000,"canvas_height":1000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/letterbox-fit", 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
{
"source_width": 1920,
"source_height": 1080,
"canvas_width": 1000,
"canvas_height": 1000
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.letterbox_fit",
"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. |
Notas técnicas
Use o resultado em fluxos de mídia
Por isso, funciona com CSS, Canvas, SVG, FFmpeg, ImageMagick, API móveis, apresentações ou tarefas de miniaturas. A solicitação pela API custa US$ 0,002, enquanto o cálculo determinístico também roda no navegador.