Redimensionar una imagen
A veces la tarea es exactamente una imagen y exactamente un tamaño objetivo: una miniatura para un listado, un banner para un correo, un avatar de perfil. Este endpoint resuelve ese trabajo puntual bien hecho, sin obligarle a pensar en lotes ni en preajustes que no necesita.
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 cotidiano detrás de redimensionar
Una imagen rara vez llega ya con las medidas que realmente necesita. La foto de un producto llega de un proveedor a 4000x3000, un diseñador entrega un banner en resolución de impresión, un usuario sube una foto de perfil de doce megapíxeles, y todas esas imágenes hay que achicarlas, y a veces agrandarlas, para que quepan en un espacio específico de una página o una plantilla. Hacer ese redimensionamiento bien, sin estirar, distorsionar ni dejar artefactos feos, es una tarea técnica pequeña que se vuelve tediosa en cuanto tiene que repetirse decenas de veces al día dentro de una aplicación.
Qué envía y qué recibe
Envía una imagen, por URL o archivo, junto con el ancho y alto deseados y cómo quiere manejar el ajuste: recortada para llenar exactamente el marco, contenida dentro de él preservando la proporción, o estirada exactamente a las medidas indicadas. La tarea redimensiona con un algoritmo que preserva la calidad en lugar de simplemente descartar píxeles, y devuelve un único archivo redimensionado en el formato de salida que pida, manteniendo la orientación y el perfil de color originales salvo que indique lo contrario.
Por qué importan la proporción y la interpolación
Redimensionar suena trivial pero es un problema con décadas de historia en gráficos por computadora: achicar una imagen sin cuidado produce patrones de moiré y bordes dentados, agrandarla sin cuidado produce borrosidad o bloques visibles. El método de interpolación usado para calcular los nuevos píxeles a partir de los originales es lo que separa un redimensionamiento que se ve intencional de uno que se ve apurado, y es justamente la parte que la mayoría de los desarrolladores prefiere no implementar por su cuenta.
Cómo encaja en un flujo automatizado
Como el endpoint es asíncrono, encaja de forma natural en un flujo de carga y procesamiento: un usuario sube una imagen, su sistema dispara la llamada de redimensionamiento, y un webhook firmado entrega el archivo terminado en el momento en que está listo, sin necesidad de mantener un ciclo de sondeo. Combina bien con un paso de almacenamiento que archive de inmediato el resultado, o con un paso de moderación que corra antes o después, según el orden de su flujo.
Cuándo una sola llamada de redimensionar es la herramienta correcta
Si necesita varios tamaños a partir de la misma imagen fuente, nuestros endpoints de lote y de conjunto responsive están hechos para eso. Este endpoint es deliberadamente acotado: una imagen entra, una imagen sale, a un tamaño exacto, lo que lo convierte en la forma más rápida y económica de resolver el caso de una sola imagen sin pagar por capacidad que no va a usar.
Qué puede hacer con ella
Normalización de fotos de perfil
Una app social o SaaS redimensiona cada avatar subido a una medida cuadrada fija en el instante en que se sube, antes de que aparezca en el feed de ningún usuario.
Fotos de listados en un marketplace
Un marketplace redimensiona las fotos de producto enviadas por proveedores a las medidas exactas de las tarjetas de listado, manteniendo cada miniatura de producto visualmente consistente.
Preparación de banners de correo
Una herramienta de automatización de marketing redimensiona la imagen principal de una campaña al ancho fijo que requieren los clientes de correo justo antes de cada envío.
Flujo de imagen destacada en un CMS
Un CMS headless redimensiona la imagen destacada que sube un editor a las medidas que exige el tema, como parte del flujo de publicación.
Preguntas frecuentes
¿Cómo redimensiono una imagen con la api?
Envíe un POST a /image/resize con la imagen de origen (URL o archivo) y el ancho y alto deseados; recibe un task_id y la imagen redimensionada llega por webhook o por un enlace firmado.
¿Puedo redimensionar recortando en lugar de solo estirar?
Sí, elige el modo de ajuste: llenar recortando al marco exacto, contener dentro de él preservando la proporción, o estirar a las medidas dadas.
¿Qué formatos de imagen soporta?
Se aceptan los formatos rasterizados comunes como entrada, y elige el formato de salida, así que también puede usar este endpoint para convertir formato y redimensionar en una sola llamada.
¿Existe un plan gratuito para la api de redimensionar 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 redimensionar una imagen?
$0.002 por solicitud más $0.005 por imagen, y solo se cobra por las tareas que efectivamente se completan.
¿Qué pasa si el redimensionamiento falla o la imagen es inválida?
La tarea reintenta automáticamente hasta tres veces; si aun así no puede completarse, recibe un error claro y nunca se cobra el intento fallido.
¿Cómo redimensiono muchas imágenes en lugar de una por una?
Use el endpoint dedicado de redimensionar en lote, construido específicamente para procesar muchas imágenes en una sola llamada en vez de repetir esta una y otra vez.
¿Cuánto tiempo está disponible el resultado después de procesarlo?
El enlace firmado permanece válido por 24 horas, y para producción recomendamos el webhook, así nunca tiene que sondear para obtener el resultado.
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/resize \
-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/resize", {
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/resize",
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/resize", 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/resize", 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.resize",
"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. |