Cortar imagem
O recorte de imagem via API corta a região que você definir — por coordenadas em pixels ou por proporção — e devolve o arquivo pronto. É a forma de tirar bordas, molduras e sobras de centenas de imagens dentro de um sistema, sem abrir cada uma num editor.
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.
Recorte por coordenadas: controle total
Você informa o ponto de partida e o tamanho da área — por exemplo, começar em 100 × 80 e recortar 800 × 600 px — e recebe exatamente essa janela da imagem. É o modo certo quando as imagens seguem um padrão fixo: capturas de tela do mesmo sistema, digitalizações no mesmo scanner, fotos de uma câmera parada. Definiu uma vez, vale para todas.
Recorte por proporção: pense no destino
Nem sempre você sabe os pixels, mas sabe onde a imagem vai ser usada: quadrada para foto de perfil, 16:9 para capa de vídeo, 4:5 para feed. No recorte por proporção você indica a razão e a região de interesse, e o corte é calculado para caber nela. Para o caso em que ninguém sabe onde está o assunto da foto, existe a capacidade separada de recorte automático, que encontra sozinha o que importa.
O clássico brasileiro: limpar o print
Boa parte dos recortes por aqui tem um motivo só: o print. Comprovante de Pix com a barra de status do celular aparecendo, conversa de WhatsApp com informação demais, captura de sistema com menu que não interessa. Um recorte fixo — mesma faixa superior e inferior fora — limpa lotes inteiros de capturas de uma vez, e o documento fica apresentável para relatório, contabilidade ou processo.
Depois do corte: encadeando transformações
O recorte raramente anda sozinho. O fluxo típico corta primeiro — tirando a moldura, a barra ou a sobra — e depois redimensiona para a medida final, comprime para a web ou converte para o formato que o destino pede. Como cada capacidade é uma chamada, encadear é questão de ordem: o resultado de uma vira entrada da outra, e o lote inteiro atravessa a esteira sem intervenção manual.
Formatos, limites e preço
Aceita os formatos comuns de imagem, com até 15 MB e 12 megapixels por arquivo. A cobrança é por uso: US$ 0,002 por chamada mais US$ 0,005 por imagem recortada — mil recortes custam US$ 7, sem mensalidade e sem cadastro. O arquivo original não é alterado: você recebe uma cópia cortada e decide o que fazer com as duas versões.
Casos de uso
Comprovantes de Pix apresentáveis
O financeiro da TecnoSul Soluções Digitais ME recebe comprovantes de Pix em print, cada um com barra de bateria e notificações na borda. Um recorte padronizado limpa todos antes de arquivar — e o contador recebe documentos organizados.
Foto 3 × 4 para crachá
O RH de uma empresa de Belo Horizonte pede foto de crachá em 3 × 4, mas as fotos chegam de todo jeito. O recorte por proporção padroniza o lote inteiro antes da impressão, sem ninguém abrir editor.
Digitalizações com moldura preta
A contadora Márcia Regina Oliveira digitaliza documentos num scanner que deixa uma borda escura. O recorte por coordenadas, ajustado uma vez, tira a moldura de todas as páginas do lote.
Feed 4:5 a partir da arte do site
Juliana Nascimento prepara o material de um cliente: as artes nascem em 16:9 para o site e saem recortadas em 4:5 para o feed, sempre com a mesma regra — sem refazer nada no editor.
Perguntas frequentes
Como descubro as coordenadas do recorte?
Abra a imagem em qualquer visualizador que mostre a posição do cursor e anote o canto inicial e o tamanho da área. Se preferir pular essa etapa, use o recorte por proporção, que dispensa pixels exatos.
Posso aplicar a mesma configuração em muitas imagens?
Pode — e é aí que o recorte via API brilha. Quando o lote segue um padrão fixo, como prints do mesmo celular ou páginas do mesmo scanner, a configuração definida uma vez vale para o conjunto todo.
Recortar diminui a qualidade da foto?
A área mantida sai na resolução original — você só descarta o resto. Não há redimensionamento embutido; se quiser mudar o tamanho depois do corte, essa é outra chamada do fluxo.
Quanto sai para cortar um lote grande?
US$ 0,002 por chamada mais US$ 0,005 por imagem: 200 recortes custam US$ 1,40. Sem assinatura e sem valor mínimo — a conta acompanha o volume, só isso.
Meus comprovantes têm dados bancários. Como fica a LGPD?
As imagens são processadas apenas para gerar o recorte que você pediu, e o resultado volta pela tarefa. Nada é publicado nem reaproveitado — o tratamento se limita à execução do seu pedido.
Qual a diferença para o recorte automático?
Aqui quem manda é a sua regra: coordenadas ou proporção fixa. No automático, a detecção encontra o assunto da foto e enquadra sozinha. Use este quando o enquadramento é conhecido; o outro, quando cada foto é uma surpresa.
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 \
-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/crop", {
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/crop",
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/crop", 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/crop", 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.crop",
"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. |