Cortar imagem na proporção
Cortar uma imagem em uma proporção exata parece simples, mas o cálculo pode gerar erros com facilidade.
Executar grátis
Esta ferramenta recebe a largura e a altura da origem, além de uma proporção como 16:9, e devolve o maior retângulo com esse formato que cabe na imagem. O corte fica centralizado e remove quantidades iguais de lados opostos. Nenhum arquivo é enviado ou transformado: o resultado é um conjunto de coordenadas reutilizável em editores, scripts, pipelines de imagem e layouts responsivos.
Transforme dimensões e proporção em uma área de corte
Informe a largura e a altura da imagem em pixels e digite a proporção desejada como largura para altura, separando os valores por dois-pontos. Opções comuns incluem 1:1 para miniaturas quadradas, 4:3 para fotografias tradicionais, 16:9 para mídia panorâmica e 9:16 para stories verticais. A calculadora compara a proporção da origem com a solicitada para descobrir qual dimensão já se ajusta. Se a imagem for larga demais, preserva toda a altura e reduz a largura. Se for alta demais, preserva toda a largura e reduz a altura. Os valores x e y localizam o canto superior esquerdo, enquanto width e height indicam o tamanho. Juntos, formam uma área de corte completa. Como o cálculo procura o maior retângulo possível, ele não desperdiça área útil reduzindo as duas dimensões. A imagem não é redimensionada, esticada nem preenchida; o resultado apenas descreve a região central que deve permanecer.
Entenda a centralização e as coordenadas fracionárias
Um corte centralizado remove a mesma quantidade das duas bordas opostas. Quando uma imagem horizontal precisa ficar mais estreita, x corresponde à metade da largura descartada e y é zero. Quando uma imagem vertical ou quadrada precisa perder altura, y corresponde à metade da altura descartada e x é zero. Algumas combinações geram coordenadas ou dimensões fracionárias. Isso está matematicamente correto: o centro exato ou a proporção exata pode ficar entre pixels físicos. Muitas bibliotecas aceitam geometria decimal ou fazem sua própria amostragem na renderização. Se a biblioteca usada por você exigir inteiros, aplique a política de arredondamento documentada somente na integração final, pois o retângulo em pixels pode se afastar um pouco da proporção exata. Manter os valores precisos evita impor uma regra oculta e garante resultados determinísticos no navegador, na API e em automações.
Use o resultado com segurança no fluxo de imagens
Trate a resposta como geometria, e não como uma imagem alterada. Envie x, y, width e height para a função de corte da biblioteca gráfica, ferramenta de linha de comando, rotina de canvas ou serviço de mídia escolhido. Confirme se o destino usa a origem no canto superior esquerdo, pois esta calculadora segue a convenção comum em que x cresce para a direita e y para baixo. Verifique as dimensões do arquivo realmente decodificado, em vez de confiar no nome ou em metadados de outra versão. A proporção deve conter exatamente dois números positivos separados por dois-pontos; textos malformados, zeros, negativos e outros separadores são rejeitados. Essa rigidez protege pipelines em lote contra centenas de resultados errados. O cálculo não usa rede, aleatoriedade, horário nem análise visual oculta, portanto entradas idênticas sempre produzem a mesma geometria, que pode ser armazenada em cache ou registrada em um manifesto.
Casos de uso
Prepare peças consistentes para redes sociais
Calcule áreas centrais 1:1, 4:5 ou 9:16 antes de gerar variantes específicas para cada canal.
Monte pipelines de miniaturas
Passe uma geometria determinística ao processador para preencher cada quadro sem distorção ou bordas.
Visualize cortes editoriais
Mostre a maior região central antes que uma pessoa responsável decida ajustar o enquadramento ao assunto.
Perguntas frequentes
Esta ferramenta corta ou envia minha imagem?
Não. Ela calcula coordenadas com base nas dimensões e na proporção, sem receber, armazenar, decodificar ou alterar a imagem.
Quanto custa o cálculo?
O preço da API é US$ 0,002 por solicitação. A versão no navegador executa localmente o mesmo cálculo determinístico.
Por que o resultado pode ter pixels decimais?
O centro ou a proporção exata pode ficar entre pixels. A geometria decimal preserva o maior corte matemático central.
Qual sintaxe de proporção é aceita?
Use dois números positivos separados por dois-pontos, como 16:9, 4:3, 1:1 ou 1.85:1. Outros separadores e textos extras são rejeitados.
O corte pode ultrapassar a imagem de origem?
Não. Uma dimensão sempre coincide com a origem e a outra é reduzida para atender à proporção.
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/crop-to-aspect \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"width":1920,"height":1080,"ratio":"4:3"}'const res = await fetch("https://api.kit.forhosting.com/image/crop-to-aspect", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"width": 1920,
"height": 1080,
"ratio": "4:3"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/crop-to-aspect",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"width": 1920,
"height": 1080,
"ratio": "4:3"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/crop-to-aspect", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"width":1920,"height":1080,"ratio":"4:3"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"width":1920,"height":1080,"ratio":"4:3"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/crop-to-aspect", 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
{
"width": 1920,
"height": 1080,
"ratio": "4:3"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.crop_to_aspect",
"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. |