Recorte inteligente
Un recorte centrado corta cabezas, la mitad del producto o justo el detalle que hacía valiosa la foto. Este endpoint ubica dónde está realmente el sujeto dentro del encuadre y recorta a su alrededor, para que mil fotos de producto o miniaturas de artículo sigan viéndose intencionales en cualquier proporción.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
El problema del recorte centrado
La mayoría de las herramientas de recorte sacan un rectángulo fijo del centro de la imagen y confían en que el sujeto haya quedado ahí por casualidad. Casi nunca es así: un retrato ligeramente descentrado, un producto fotografiado dejando espacio para un texto, un paisaje con el horizonte bajo — un recorte centrado a ciegas convierte cualquiera de estos casos en una mala miniatura. El recorte inteligente analiza dónde está realmente el peso visual de la imagen antes de decidir qué conservar.
Quién necesita un recorte que reconozca al sujeto
Catálogos con miles de fotos de proveedores tomadas con encuadres inconsistentes; medios que convierten imágenes destacadas en tarjetas cuadradas para redes sociales sin que un diseñador toque cada una; marketplaces que necesitan que la misma foto de producto funcione como mosaico 1:1, foto de ficha 4:3 y banner 16:9. Donde una sola imagen de origen debe convertirse en varias formas fijas de manera automática, este es el paso que mantiene al sujeto dentro del encuadre.
Qué pasa con su imagen
Envía el archivo original junto con las dimensiones deseadas, recibe de inmediato un task_id y la tarea analiza el encuadre para ubicar la región que vale la pena conservar antes de recortar al tamaño exacto solicitado. Cuando está lista le avisamos por webhook firmado, o la recoge desde un enlace firmado válido por 24 horas.
Cómo encaja en un flujo de catálogo
Como es asíncrona y solo se cobra cuando el recorte se completa con éxito, se integra sin fricción en procesos de ingesta: llega un feed de proveedor con quinientas fotos crudas, salen quinientas solicitudes de recorte inteligente, y los webhooks devuelven las miniaturas terminadas a medida que llegan — sin cola de revisión manual ni cobro por las que fallen.
Por qué el recorte centrado duró tanto
El recorte centrado sobrevivió durante décadas simplemente porque es barato de calcular — un desplazamiento fijo no requiere analizar ni un solo píxel. Funciona bien cuando todas las fotos de origen ya llegan encuadradas de forma idéntica, algo poco común fuera de un estudio con trípode fijo. En el momento en que las imágenes llegan de distintos fotógrafos, cámaras o proveedores, el encuadre deja de ser consistente, y ahí es exactamente donde el recorte inteligente cierra la brecha.
Qué puede hacer con ella
Miniaturas de marketplace
Un feed de fotos de producto de un proveedor se recorta a una cuadrícula cuadrada uniforme sin que nadie tenga que recentrar manualmente las tomas descentradas.
Imágenes destacadas de artículos
Un CMS convierte una foto editorial panorámica en una tarjeta cuadrada para redes automáticamente, conservando el rostro del sujeto en lugar del fondo vacío.
Fichas en múltiples formatos
La misma foto de producto se recorta en 1:1, 4:3 y 16:9 para distintos espacios de una tienda en línea, cada versión centrada en el producto.
Avatares subidos por usuarios
Las fotos de perfil subidas con encuadres arbitrarios se recortan alrededor del rostro y no del centro literal de la imagen.
Preguntas frecuentes
¿Está disponible ya la API de Recorte Inteligente?
Sí, está en producción en POST /image/smart-crop con el precio de abajo ya vigente.
¿Cómo se cobra?
$0.002 por solicitud más $0.005 por imagen — una tarifa base pequeña más un costo fijo por imagen, publicado y sin cambios por volumen.
¿Qué formatos de imagen acepta?
Formatos rasterizados comunes como JPEG, PNG y WebP; el recorte se devuelve en el mismo formato de origen a menos que se indique otro.
¿Puedo fijar una proporción específica?
Sí, envía las dimensiones o la proporción deseada en la solicitud y el recorte se ajusta a ese tamaño exacto alrededor del sujeto detectado.
¿Es una API gratis?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Cómo recibo el resultado?
Por webhook firmado cuando el recorte está listo, o mediante un enlace firmado válido por 24 horas.
¿Se cobra si el recorte falla?
No. Las tareas fallidas se reintentan automáticamente hasta tres veces y nunca se cobran; en su lugar recibe un error claro.
¿Puedo recortar un catálogo completo de una vez?
Sí — cada solicitud procesa una imagen y devuelve su propio task_id, así que un catálogo de miles es solo solicitudes en paralelo recogidas por webhook.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/image/smart-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/smart-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/smart-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/smart-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/smart-crop", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"image": "https://ejemplo.com/imagen.jpg"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.smart_crop",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 15 |
max_megapixels | 12 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |