Recortar una imagen
Redimensionar cambia qué tan grande es una imagen; recortar cambia qué hay realmente dentro del encuadre. Cuando una foto tiene el sujeto correcto pero la forma equivocada para el espacio que necesita llenar, este endpoint la corta a coordenadas exactas o a una proporción objetivo, sin tocar nada fuera del marco de recorte.
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.
Recortar resuelve un problema distinto al de redimensionar
Es tentador tratar el recorte y el redimensionamiento como la misma operación, pero responden preguntas diferentes. Redimensionar pregunta qué tan grande debe ser toda la imagen; recortar pregunta qué parte de esta imagen quiero conservar. Una foto panorámica forzada a un redimensionamiento cuadrado simplemente se distorsiona, pero la misma foto recortada a un cuadrado mantiene su sujeto intacto y solo descarta las partes del encuadre que no necesita, que es casi siempre lo que un diseño realmente pide cuando una foto no coincide con su espacio.
Dos formas de indicar qué conservar
Puede especificar un recorte exacto en coordenadas de píxeles, dando la esquina superior izquierda junto con ancho y alto, lo cual es la opción correcta cuando ya sabe con precisión qué región importa, por ejemplo un rostro detectado por un proceso previo o un logotipo en una posición fija. O puede indicar una proporción objetivo, como 1:1 o 16:9, y dejar que la tarea centre el recorte automáticamente, lo cual es el camino más rápido cuando solo necesita una forma que encaje en un diseño y no requiere control a nivel de píxel sobre el encuadre.
Una breve nota sobre por qué la proporción sigue importando
La proporción de aspecto ha sido una restricción de los medios visuales desde mucho antes de que existieran las cámaras digitales, desde las proporciones fijas del rollo de película hasta las distintas relaciones de la televisión y el cine, y cada una de esas proporciones existe porque una tecnología de exhibición específica la exigía. La restricción de hoy es la misma idea en una forma nueva: un componente de tarjeta, un banner principal y la miniatura de una publicación en redes sociales esperan cada uno una proporción específica, y una sola foto de origen casi nunca llega ya con la forma exacta para encajar en las tres.
Cómo encaja en un flujo de diseño o publicación
El recorte suele ser el último paso antes de que una imagen salga en vivo, ejecutado después de cualquier redimensionamiento para que el resultado final tenga tanto la forma correcta como el tamaño de archivo adecuado para su destino. Combínelo con una llamada de redimensionamiento cuando necesite ambas operaciones, primero recortando a la proporción correcta y luego redimensionando a las dimensiones finales exactas, o use el recorte solo cuando la imagen de origen ya está cerca del tamaño que necesita y solo el encuadre está mal. Como corre de forma asíncrona, se integra sin fricción en flujos de contenido que procesan cargas de usuarios o recursos de un CMS sin bloquear la solicitud que lo disparó.
Qué puede hacer con ella
Preparación de miniaturas para redes sociales
Una herramienta de publicación recorta la imagen destacada de un artículo a las proporciones cuadrada y horizontal que cada red social espera, generando miniaturas listas para cada plataforma a partir de una sola foto.
Encuadre de fotos de producto en un marketplace
Un marketplace recorta las fotos de los proveedores a un encuadre cuadrado consistente para que todas las tarjetas de producto se alineen visualmente, sin importar la forma original de la foto.
Recorte de avatar centrado en el rostro
Un sistema de perfiles de usuario usa coordenadas de un paso previo de detección de rostros para recortar las fotos subidas y mantener el rostro del sujeto centrado en el avatar.
Ajuste de imagen principal editorial
El CMS de una sala de redacción recorta una foto de agencia a la proporción exacta que exige el espacio principal de la portada, conservando la parte de la imagen que eligió el editor.
Preguntas frecuentes
¿Cómo recorto una imagen con coordenadas exactas?
Envía un POST a /image/crop con la imagen de origen y las coordenadas en píxeles del marco de recorte, posición superior izquierda más ancho y alto, y recibirá exactamente esa región.
¿Puedo recortar a una proporción en vez de coordenadas exactas?
Sí, indique una proporción objetivo como 1:1 o 16:9 y la tarea centra el recorte automáticamente, lo cual es más rápido cuando no necesita control a nivel de píxel.
¿Cuál es la diferencia entre recortar y redimensionar?
Redimensionar cambia las dimensiones generales de toda la imagen y puede distorsionar sus proporciones; recortar corta una región específica y descarta el resto, manteniendo intacto todo lo que queda dentro del marco de recorte.
¿Existe un plan gratuito para la api de recortar imágenes?
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.
¿Cuánto cuesta recortar una imagen?
$0.002 por solicitud más $0.005 por imagen, cobrado solo cuando el recorte se completa con éxito.
¿Qué pasa si mis coordenadas de recorte quedan fuera de los límites de la imagen?
La tarea valida el marco de recorte contra la imagen de origen y devuelve un error claro si no encaja, en lugar de generar en silencio un resultado distorsionado o con relleno.
¿Puedo recortar y redimensionar en el mismo flujo?
Sí, el patrón habitual es recortar primero para corregir la proporción y luego redimensionar a las dimensiones finales exactas, combinando este endpoint con el de redimensionar.
¿Cómo obtengo la imagen recortada?
Mediante un webhook firmado, recomendado para flujos automatizados, o a través de un enlace firmado válido por 24 horas después de que la tarea termina.
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/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)Ejemplo de solicitud
{
"image": "https://ejemplo.com/imagen.jpg"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.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. |