Recortar imagen a una relación de aspecto
Recortar una imagen con una relación de aspecto precisa parece sencillo, pero es fácil equivocarse en el cálculo.
Ejecutar — gratis
Esta herramienta recibe el ancho y el alto originales junto con una proporción como 16:9 y devuelve el mayor rectángulo que cabe en la imagen con esa forma. El recorte queda centrado, por lo que elimina la misma cantidad de lados opuestos. No carga ni transforma archivos: entrega coordenadas reutilizables en editores, scripts, procesos de imágenes o diseños adaptables.
Convierta dimensiones y proporción en un rectángulo de recorte
Introduzca el ancho y el alto de la imagen en píxeles y escriba la proporción deseada como ancho respecto a alto, separada por dos puntos. Entre las opciones habituales están 1:1 para miniaturas cuadradas, 4:3 para fotografía tradicional, 16:9 para contenido panorámico y 9:16 para historias verticales. La calculadora compara la proporción original con la solicitada para determinar qué dimensión ya encaja. Si la imagen es demasiado ancha, conserva toda la altura y reduce el ancho. Si es demasiado alta, conserva todo el ancho y reduce la altura. Los valores x e y indican la esquina superior izquierda; width y height describen el tamaño. Los cuatro valores forman un cuadro de recorte completo. Como busca el mayor rectángulo posible, no desperdicia superficie reduciendo ambas dimensiones. Tampoco remuestrea, estira ni añade bordes: solo indica qué región central debe conservarse.
Interprete el centrado y las coordenadas fraccionarias
Un recorte centrado elimina la misma cantidad de ambos bordes opuestos. Cuando una imagen horizontal debe estrecharse, la coordenada x equivale a la mitad del ancho descartado e y vale cero. Cuando una imagen vertical o cuadrada debe perder altura, y equivale a la mitad de la altura descartada y x vale cero. Algunas combinaciones producen coordenadas o dimensiones decimales. Es correcto desde el punto de vista matemático: el centro exacto o la proporción exacta pueden quedar entre dos píxeles. Muchas bibliotecas admiten geometría decimal o aplican su propio muestreo al renderizar. Si su herramienta exige enteros, aplique al final la regla de redondeo que documente, pues el rectángulo resultante puede apartarse ligeramente de la proporción exacta. Conservar precisión evita imponer una política oculta y garantiza resultados deterministas en el navegador, la API y la automatización.
Aplique el resultado con seguridad en su flujo de imágenes
Considere la respuesta como geometría, no como una imagen modificada. Pase x, y, width y height a la función de recorte de su biblioteca gráfica, herramienta de línea de comandos, rutina de canvas o servicio multimedia. Compruebe si el destino usa el origen en la esquina superior izquierda: esta calculadora sigue la convención habitual, con x hacia la derecha e y hacia abajo. Obtenga las dimensiones del archivo realmente decodificado, no de un nombre o metadato perteneciente a otra versión. El campo de proporción debe contener exactamente dos números positivos separados por dos puntos; se rechazan textos defectuosos, ceros, negativos y otros separadores. Esta exigencia protege los procesos por lotes frente a cientos de recursos incorrectos. El cálculo no usa red, azar, fechas ni análisis visual oculto, de modo que una misma entrada siempre produce la misma geometría y puede guardarse en caché o en un manifiesto.
Qué puede hacer con ella
Prepare recursos uniformes para redes sociales
Calcule cuadros centrados 1:1, 4:5 o 9:16 antes de producir variantes para cada canal.
Cree procesos de miniaturas
Envíe geometría determinista a un procesador para llenar cada marco sin deformaciones ni relleno.
Previsualice recortes editoriales
Muestre la mayor región centrada antes de que un editor decida ajustar el encuadre al sujeto.
Preguntas frecuentes
¿Esta herramienta recorta o carga mi imagen?
No. Calcula coordenadas a partir de dimensiones y una proporción; no recibe, guarda, decodifica ni modifica la imagen.
¿Cuánto cuesta el cálculo?
La API cuesta $0.002 por solicitud. La versión del navegador realiza localmente el mismo cálculo determinista.
¿Por qué puede haber píxeles decimales?
El centro o la proporción exactos pueden caer entre píxeles. La geometría decimal conserva el mayor recorte matemático.
¿Qué sintaxis de proporción se admite?
Use dos números positivos separados por dos puntos, como 16:9, 4:3, 1:1 o 1.85:1. Se rechazan otros separadores y texto adicional.
¿Puede el recorte salir de la imagen original?
No. Una dimensión coincide siempre con la original y la otra se reduce hasta ajustarse a la proporción.
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, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"width": 1920,
"height": 1080,
"ratio": "4:3"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.crop_to_aspect",
"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. |