Añadir marca de agua: calcule posición, escala y límites
Un logotipo de 300×120 a media escala en la esquina inferior derecha de una foto de 1200×800 queda en 150×60 y empieza a 1050 de la izquierda y 740 desde arriba. Obtenga el recuadro completo antes de tocar un píxel. Solo calcula. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Ancho de la base
- 1 200
- Altura de la base
- 800
- Ancho de la marca de agua
- 300
- Alto de la marca de agua
- 120
- Posición
- Bottom right
- Escala
- 0,5
- X
- 1 050
- Y
- 740
- Ancho
- 150
- Altura
- 60
Esta calculadora determina con exactitud dónde quedará una marca de agua antes de modificar cualquier píxel. Indique las dimensiones de la imagen base y de la marca, un factor de escala y una de nueve posiciones de anclaje. El resultado incluye las coordenadas izquierda, superior, derecha e inferior, además del ancho y alto finales. La reducción proporcional opcional ajusta una marca demasiado grande sin alterar su relación de aspecto.
Describa ambas imágenes con el mismo sistema de coordenadas
Comience con el ancho y el alto de la imagen base e indique después las dimensiones naturales de la marca de agua. Lo habitual es trabajar en píxeles, aunque sirve cualquier unidad positiva usada de forma coherente. La escala se aplica por igual al ancho y al alto, por lo que conserva la proporción original.
Un valor de 0.5 reduce cada dimensión a la mitad y 2 las duplica. La calculadora rechaza datos ausentes, nulos, negativos, no numéricos o infinitos porque no pueden definir un rectángulo válido. No analiza ni modifica archivos, no estima el contenido visible dentro de márgenes transparentes ni contempla rotación.
Use las dimensiones completas del lienzo de cada imagen. El ancho y el alto devueltos representan todo el lienzo colocado de la marca, incluidos los píxeles transparentes que formen parte del archivo de origen.
Elija un anclaje e interprete el marco delimitador
La posición selecciona uno de nueve anclajes: cuatro esquinas, los puntos medios de los bordes o el centro exacto. El origen está en la esquina superior izquierda, como es habitual en imágenes ráster: x aumenta hacia la derecha e y hacia abajo. Una marca arriba a la izquierda comienza en cero para ambas coordenadas; una situada abajo a la derecha termina en el ancho y el alto de la base.
Las posiciones centradas reparten por igual el espacio restante y pueden producir decimales. La respuesta ofrece x e y para la esquina superior izquierda, ancho y alto para el tamaño colocado, y right y bottom para los bordes opuestos. Esos valores forman el marco que requieren muchas bibliotecas de imagen.
No se añade ningún margen. Si necesita separación respecto a un borde, ajuste después las coordenadas o amplíe previamente el rectángulo conceptual.
Gestione de forma explícita las marcas demasiado grandes
La escala se evalúa antes de calcular la posición. Si la marca escalada supera el ancho o el alto de la imagen base, el comportamiento predeterminado es devolver un error de entrada, evitando recortes inesperados. La calculadora toma la menor relación disponible entre anchos y alturas, aplica esa reducción adicional de manera uniforme y garantiza que ambas dimensiones quepan.
Esta opción nunca amplía una marca; solo interviene si el tamaño solicitado resulta excesivo. Así puede aplicar una misma regla a imágenes horizontales, verticales y miniaturas sin deformar el gráfico.
Qué puede hacer con ella
Prepare una orden de superposición
Obtenga coordenadas y dimensiones exactas antes de enviar el logotipo y la imagen a una biblioteca de procesamiento.
Valide reglas adaptables
Pruebe la misma escala y el mismo anclaje con formatos de escritorio, móvil, verticales y miniaturas sin modificar archivos.
Evite recortes accidentales
Rechace una marca excesiva o ajústela proporcionalmente antes de que el proceso de producción aplique la superposición.
Preguntas frecuentes
¿Esta capacidad modifica una imagen?
No. Solo calcula la geometría y devuelve un marco para que lo use otro renderizador o una biblioteca de imágenes.
¿Dónde se encuentra el origen de coordenadas?
Está en la esquina superior izquierda de la imagen base. x aumenta hacia la derecha e y hacia abajo.
¿La escala conserva la relación de aspecto?
Sí. Se aplica un único factor a ambas dimensiones, también durante el ajuste proporcional opcional.
¿La posición incluye márgenes?
No. Los anclajes tocan el borde correspondiente o centran el rectángulo. Aplique después cualquier separación deseada.
¿Qué pasa si la marca de agua es más grande que la foto?
Por defecto el cálculo se rechaza en lugar de devolver un resultado recortado. Si activa la reducción proporcional, la marca se encoge hasta caber sin perder su proporción, y el resultado le indica la escala final y si hubo que reducirla.
Herramientas relacionadas
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/watermark-image \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"base_width":1200,"base_height":800,"watermark_width":300,"watermark_height":120}'const res = await fetch("https://api.kit.forhosting.com/image/watermark-image", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"base_width": 1200,
"base_height": 800,
"watermark_width": 300,
"watermark_height": 120
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/watermark-image",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"base_width": 1200,
"base_height": 800,
"watermark_width": 300,
"watermark_height": 120
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/watermark-image", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"base_width":1200,"base_height":800,"watermark_width":300,"watermark_height":120}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"base_width":1200,"base_height":800,"watermark_width":300,"watermark_height":120}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/watermark-image", 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
{
"base_width": 1200,
"base_height": 800,
"watermark_width": 300,
"watermark_height": 120
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.watermark_image",
"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. |
Notas técnicas
Gestione de forma explícita las marcas demasiado grandes
Active scale_down cuando desee que se ajuste automáticamente. La respuesta incluye la escala final y el indicador scaled_down para que su proceso registre si hubo un ajuste. El cálculo es determinista, no carga archivos ni usa la red y, cuando se automatiza, cuesta $0.002 por solicitud de API.
Preguntas técnicas
¿Qué sucede si la marca es demasiado grande?
La solicitud falla de forma predeterminada. Active scale_down para reducirla proporcionalmente hasta que quepa.
¿Cuánto cuesta una solicitud de API?
El precio es $0.002 por solicitud. El mismo cálculo determinista puede ejecutarse gratis en el navegador.