Redimensionar lienzo con relleno
Redimensione el lienzo de una imagen con relleno cuando la fotografía deba conservar sus dimensiones originales en píxeles.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Indique el ancho y el alto de la imagen, las dimensiones del lienzo de destino y el color de fondo. La calculadora devuelve el relleno exacto de cada lado y la posición superior izquierda de la imagen en el nuevo lienzo. Nunca recorta, estira ni remuestrea el original. Si alguna dimensión de destino es demasiado pequeña, la solicitud falla en vez de modificar la obra sin avisar.
Amplíe el lienzo conservando cada píxel original
Redimensionar el lienzo y escalar una imagen resuelven problemas distintos. El escalado cambia el número de píxeles que ocupa la imagen y puede suavizar detalles, alterar dimensiones preparadas con cuidado o incumplir un requisito de producción. Esta calculadora no modifica el ancho ni el alto de la imagen. Resta esas dimensiones del lienzo solicitado y describe el espacio vacío que debe añadirse alrededor del original. Resulta útil cuando una foto de producto, ilustración, captura de pantalla o recurso generado ya tiene el tamaño correcto, pero necesita un marco mayor. Introduzca dimensiones enteras positivas en píxeles y el color de fondo que utilizará la operación posterior. El resultado repite las dimensiones, informa del relleno superior, derecho, inferior e izquierdo y proporciona las coordenadas x e y donde comienza la imagen. No se carga ni decodifica ningún archivo, porque el cálculo solo depende de la geometría.
Comprenda el centrado cuando sobran píxeles impares
El centrado perfecto es directo cuando la diferencia entre el lienzo y la imagen es par. Por ejemplo, 400 píxeles horizontales adicionales producen 200 a la izquierda y 200 a la derecha. Una diferencia impar no puede dividirse en dos mitades de píxeles enteros. En ese caso, la calculadora asigna la parte menor a la izquierda o arriba y el píxel adicional a la derecha o abajo. Por tanto, una diferencia horizontal de 401 se convierte en 200 píxeles a la izquierda y 201 a la derecha. Esta convención mantiene una posición determinista y evita coordenadas fraccionarias que las herramientas ráster no pueden representar. El campo image_position coincide con los rellenos izquierdo y superior, por lo que puede pasarse directamente a numerosas API de dibujo, composición o procesamiento por línea de comandos. Las sumas horizontales y verticales siempre reconstruyen las dimensiones exactas del lienzo.
Valide el destino antes de crear el flujo de imágenes
El lienzo de destino debe ser al menos tan ancho y tan alto como la imagen original. Cumplir solo una condición no basta: un lienzo ancho pero bajo recortaría verticalmente, mientras que uno alto pero estrecho recortaría horizontalmente. La calculadora rechaza cualquiera de esos casos con un error de entrada no válida, para que un recorte accidental sea visible durante la planificación. Las dimensiones iguales son válidas y devuelven cero píxeles de relleno en los cuatro lados, algo práctico cuando un flujo acepta recursos variados y algunos ya coinciden con el destino. El color de fondo se trata deliberadamente como una cadena no vacía, no como una sintaxis cromática concreta. Puede usar un valor hexadecimal, un color de estilo CSS, un nombre o un token como transparent, siempre que la herramienta posterior lo admita. Utilice la respuesta para configurar la ampliación del lienzo. La API cuesta $0.002 por solicitud y siempre produce el mismo resultado para la misma entrada.
Qué puede hacer con ella
Uniformar lienzos de fotos de producto
Centre una imagen de producto ya dimensionada en un lienzo uniforme de catálogo sin ampliarla ni recortarla.
Preparar gráficos para redes con seguridad
Calcule el borde necesario alrededor de una obra terminada antes de exportarla a un lienzo mayor de una plataforma.
Configurar un flujo de imágenes
Convierta las dimensiones de origen y destino en desplazamientos exactos para una operación posterior de ampliación del lienzo.
Preguntas frecuentes
¿Esta herramienta redimensiona o remuestrea la imagen?
No. Conserva las dimensiones indicadas y solo calcula el espacio adicional del lienzo que la rodea.
¿Qué ocurre si el lienzo de destino es menor?
La solicitud devuelve un error de entrada no válida si alguna dimensión de destino es menor que la dimensión correspondiente de la imagen.
¿Dónde se coloca el píxel adicional si el relleno es impar?
El píxel adicional se asigna a la derecha o abajo; la izquierda y la parte superior reciben la mitad entera menor.
¿Qué formatos de color de fondo se admiten?
La calculadora acepta cualquier cadena de color no vacía y la devuelve sin espacios exteriores. La herramienta posterior decide si la sintaxis es válida.
¿Cuánto cuesta una solicitud API?
Cada solicitud API cuesta $0.002. El cálculo utiliza únicamente dimensiones y texto de color, no el archivo de imagen.
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/canvas-resize-pad \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image_width":1200,"image_height":800,"canvas_width":1600,"canvas_height":1000,"background_color":"#ffffff"}'const res = await fetch("https://api.kit.forhosting.com/image/canvas-resize-pad", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image_width": 1200,
"image_height": 800,
"canvas_width": 1600,
"canvas_height": 1000,
"background_color": "#ffffff"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/canvas-resize-pad",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image_width": 1200,
"image_height": 800,
"canvas_width": 1600,
"canvas_height": 1000,
"background_color": "#ffffff"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/canvas-resize-pad", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image_width":1200,"image_height":800,"canvas_width":1600,"canvas_height":1000,"background_color":"#ffffff"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image_width":1200,"image_height":800,"canvas_width":1600,"canvas_height":1000,"background_color":"#ffffff"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/canvas-resize-pad", 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_width": 1200,
"image_height": 800,
"canvas_width": 1600,
"canvas_height": 1000,
"background_color": "#ffffff"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.canvas_resize_pad",
"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. |