ForHosting KIT · Imagens

Corte quadrado centralizado no rosto: calcule a região exata

Um rosto de 200 × 240 na posição 400, 250 de uma foto de 1200 × 900 gera um quadrado de 360 pixels que começa em x 320, y 190, com o rosto centralizado e um quarto de margem em cada lado. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Largura
1.200
Altura
900
Rosto X
400
Rosto Y
250
Largura do rosto
200
Altura do rosto
240
Você obtém
X
320
Y
190
Lado
360
Direita
680

O estimador de corte centralizado no rosto transforma o resultado de uma detecção facial em uma região de corte quadrado pronta para uso. Você envia as dimensões da imagem e a caixa delimitadora do rosto detectado — esquerda, topo, largura e altura — além de uma margem opcional, e recebe de volta os valores exatos de x, y e lado de um quadrado que mantém o rosto centralizado e totalmente dentro da imagem. Nenhum pixel é enviado, decodificado ou transformado: trata-se de geometria pura e determinística, a etapa de planejamento que você executa antes do corte real.

Por que estimar o corte antes de cortar

O corte sensível a rostos aparece em todo lugar: fotos de perfil, geradores de avatar, miniaturas de um diretório de pessoas, pré-visualizações inteligentes em uma biblioteca de fotos. Em todos eles, a parte custosa é decodificar e recodificar a imagem, e a parte irritante é descobrir depois que o enquadramento saiu errado — o rosto cortado na borda, o quadrado fora do centro, a margem apertada demais para uma máscara circular. Esta capacidade separa a decisão barata da execução cara.

Você já executou um detector de rostos e tem uma caixa delimitadora; em vez de alimentar a imagem diretamente em um pipeline e torcer pelo melhor, você solicita primeiro a região exata de corte.

Como a região é calculada

O algoritmo é deliberadamente simples e totalmente determinístico. Primeiro, ele encontra o centro da caixa delimitadora do rosto. O lado do quadrado começa como o maior valor entre a largura e a altura do rosto, multiplicado por um mais duas vezes a margem — assim, a margem padrão de 0.25 adiciona um quarto do tamanho do rosto em cada lado, gerando um quadrado uma vez e meia maior que o maior lado do rosto, um enquadramento confortável para retratos.

Se esse quadrado for maior que a própria imagem, ele é reduzido à menor dimensão dela. O quadrado é então centralizado no centro do rosto e, quando ultrapassaria alguma borda, deslocado de volta para dentro da imagem — limitado, nunca deformado — de modo que a região retornada é sempre um corte válido e dentro dos limites.

Onde ele se encaixa em um pipeline

O fluxo típico é: execute o detector de rostos de sua preferência, pegue a melhor caixa delimitadora, chame este estimador e depois passe a região retornada a um cortador real, como a capacidade image.crop ou o seu próprio worker de miniaturas. Como o estimador nunca toca nos bytes da imagem, você também pode usá-lo apenas com metadados — por exemplo, para decidir, antes de baixar qualquer coisa, se um rosto detectado perto da borda renderá um quadrado utilizável ou se deve recorrer a outro layout.

O parâmetro de margem é o seu único ajuste: 0 produz um quadrado justo exatamente ao redor do maior lado do rosto, 0.25 é o enquadramento padrão para retratos e 0.5 ou mais deixa espaço para cabelo e ombros.

Gerar avatares quadrados a partir de uploads

Pegue a caixa facial do seu detector e obtenha o quadrado exato para alimentar o seu worker de corte, com uma margem que sobrevive a uma máscara circular.

Pré-validar um pipeline de miniaturas

Valide caixas faciais e calcule regiões de corte apenas com metadados, antes de pagar o custo de decodificar e recodificar uma única imagem.

Auditar cortes automatizados

Armazene a região estimada junto a cada ativo, para que um avatar mal enquadrado possa ser rastreado até as coordenadas exatas que o produziram.

Quanto custa?

Também é gratuito no seu navegador nesta página, com exatamente o mesmo resultado.

Preciso enviar a imagem?

Não. Apenas as dimensões da imagem e a caixa delimitadora do rosto são enviadas — seis números. Nenhum dado de pixel é transmitido, processado ou armazenado.

O que acontece se a caixa facial ultrapassar a imagem?

Uma caixa facial fora da imagem é quase sempre um bug de detecção ou de mapeamento de coordenadas, e ela é reportada em vez de cortada silenciosamente.

E se o quadrado ultrapassar uma borda?

O quadrado é deslocado de volta para dentro da imagem mantendo seu tamanho e, se for maior que a própria imagem, é reduzido à menor dimensão dela. A região retornada está sempre totalmente dentro dos limites.

O que a margem faz?

Ela adiciona espaço ao redor do rosto como uma fração do seu maior lado. O padrão 0.25 gera um quadrado 1.5 vezes o maior lado do rosto; 0 produz um corte justo e 0.5 deixa espaço generoso.

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.

POSThttps://api.kit.forhosting.com/image/crop-face-center-estimate

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/image/crop-face-center-estimate \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"width":1200,"height":900,"face_x":400,"face_y":250,"face_width":200,"face_height":240}'
{
  "width": 1200,
  "height": 900,
  "face_x": 400,
  "face_y": 250,
  "face_width": 200,
  "face_height": 240
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "image.crop_face_center_estimate",
  "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.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

max_mb15
max_megapixels12
HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Funciona gratuitamente no seu navegador nesta página e via API por US$ 0,002 por chamada.

Por que estimar o corte antes de cortar

A resposta é um simples objeto JSON com x, y e lado, que você pode entregar a qualquer ferramenta de corte, do ImageMagick a um elemento canvas, ou armazenar junto ao ativo para que a decisão seja auditável. Como o cálculo é aritmética pura sobre seis números, custa quase nada, responde em microssegundos e se comporta de forma idêntica no navegador e na API, permitindo prototipar interativamente e automatizar depois, sem conferir novamente nenhum resultado.

Como a região é calculada

A própria caixa facial é validada rigorosamente: origens negativas, tamanhos não positivos e caixas que ultrapassam as bordas da imagem geram um erro invalid_input, em vez de produzir silenciosamente um corte quebrado, pois uma caixa facial fora da imagem é um bug do detector sobre o qual você quer ser avisado.

Onde ele se encaixa em um pipeline

Tudo roda na nossa edge global sem armazenar nada, e o mesmo módulo alimenta a calculadora gratuita desta página, de modo que o número que você vê no navegador é, byte a byte, o número que a API retorna quando você automatiza a chamada.

O resultado é determinístico?

Sim. É aritmética pura: mesma entrada, mesmas coordenadas, no navegador e na API, sem aleatoriedade, relógios ou rede envolvidos.

Ver a documentação completa do KIT →