Cree una especificación de imagen de marcador
Pida un marcador de 640 × 360 y obtenga el tamaño del lienzo, los colores escritos siempre igual, como #1A2B3C, y una etiqueta «640 × 360» centrada en 320, 180. Reserve el hueco de cada imagen en un diseño antes de que llegue la definitiva. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Una especificación de imagen de marcador resulta útil cuando un diseño necesita una geometría de imagen previsible antes de disponer del recurso definitivo. Indique una anchura y una altura positivas en píxeles y, si lo desea, colores hexadecimales para el fondo y el texto. El resultado describe el lienzo, los colores normalizados y una etiqueta de dimensiones situada exactamente en el centro.
Defina el lienzo antes de construir la interfaz
Comience con la anchura y la altura exactas que deberá ocupar la imagen final. Ambos valores se expresan en píxeles y deben ser enteros positivos, lo que mantiene la especificación apta para navegadores, sistemas de diseño y datos de prueba habituales. El objeto de dimensiones devuelto conserva esos valores sin escalarlos ni deducir una relación de aspecto.
Así, el resultado funciona como un límite estable entre el sistema de contenidos que conoce el espacio necesario y el renderizador que después convertirá la especificación en SVG, instrucciones de canvas, CSS u otro formato. Como esta capacidad devuelve una descripción en lugar de datos binarios, usted conserva el control sobre el tipo de archivo, la compresión, la tipografía y el entorno de renderizado. Un componente de tarjeta puede solicitar un formato horizontal y un avatar uno cuadrado, ambos con la misma estructura previsible.
Las dimensiones nulas, negativas, fraccionarias, ausentes o no numéricas se rechazan en vez de corregirse silenciosamente, para impedir que datos de diseño erróneos avancen por el proceso.
Elija colores con valores hexadecimales canónicos
Los colores de fondo y texto son opcionales. Si se omiten, la especificación emplea un fondo gris claro neutro y un texto gris oscuro que sirven como valores prácticos para un marcador. Si se proporcionan, cada color debe usar notación hexadecimal CSS de tres, cuatro, seis u ocho dígitos; el signo de almohadilla es opcional.
Las formas abreviadas se expanden y las letras se convierten en mayúsculas, de modo que entradas equivalentes producen un único valor canónico. Así, una forma corta y su equivalente de seis dígitos no generan claves de caché ni instantáneas distintas sin necesidad. Las formas de cuatro y ocho dígitos conservan la información alfa para renderizadores compatibles con transparencias.
La capacidad no admite nombres de colores, degradados, funciones ni tokens de diseño, porque dependen de un entorno de estilo concreto y reducirían la portabilidad. Tampoco afirma que la pareja seleccionada cumpla una norma de contraste. Si la legibilidad es esencial, valide los colores normalizados antes de renderizar.
Los errores claros identifican el campo cuyo formato no se admite.
Renderice la etiqueta centrada de forma uniforme
El texto de la etiqueta se genera directamente a partir de las dimensiones validadas con el formato habitual de anchura por altura. Su coordenada horizontal equivale a la mitad de la anchura y la vertical a la mitad de la altura, por lo que las dimensiones impares pueden producir correctamente coordenadas de medio píxel. Los valores explícitos de alineación horizontal y vertical indican al renderizador que debe anclar la etiqueta por el centro y no interpretar las coordenadas como un origen superior izquierdo.
Esto evita incorporar supuestos sobre la familia tipográfica, el tamaño de letra, el interlineado o la medición del texto, aspectos que corresponden a la capa de renderizado. Una implementación web puede trasladar los campos a atributos de texto SVG, mientras que una biblioteca gráfica del servidor puede usar las mismas coordenadas con sus propias opciones de centrado. La especificación es determinista porque solo efectúa validación, normalización y aritmética.
Ninguna llamada de red, reloj, fuente aleatoria o estado almacenado afecta al resultado, lo que aporta estabilidad a pruebas visuales, documentación, esqueletos y datos de ejemplo.
Qué puede hacer con ella
Prepare datos para diseños adaptables
Cree especificaciones uniformes para los espacios de imágenes de tarjetas, galerías y banners antes de disponer de los recursos finales.
Alimente un renderizador interno
Normalice dimensiones y colores antes de convertir el resultado en SVG, operaciones de canvas o instrucciones gráficas del servidor.
Estabilice las pruebas visuales
Utilice coordenadas deterministas y colores canónicos en instantáneas sin depender de un servicio externo de imágenes de marcador.
Preguntas frecuentes
¿Qué ocurre si se omiten los colores?
El fondo adopta #CCCCCC y la etiqueta #333333. Ambos aparecen en el resultado con formato normalizado de seis dígitos.
¿Qué formatos de color se admiten?
Se admiten colores CSS hexadecimales de tres, cuatro, seis u ocho dígitos, con o sin almohadilla inicial.
¿Por qué una coordenada central puede tener decimales?
El centro matemático de una dimensión impar se encuentra entre píxeles; por eso, dividirla entre dos produce correctamente medio píxel.
¿Crea el archivo de la imagen de marcador?
No. Describe el lienzo, los colores y la etiqueta centrada sin dibujar, descargar ni guardar ninguna imagen. Quien la convierta en imagen decide por completo el tipo de archivo, la compresión y la tipografía.
¿Comprueba que el texto se lea bien sobre el fondo?
No, no garantiza que la pareja de colores cumpla ninguna norma de contraste. Si la legibilidad importa, revise los dos colores ya normalizados con un comprobador de contraste antes de dibujar el marcador.
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/placeholder-image-spec \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"width":640,"height":360}'const res = await fetch("https://api.kit.forhosting.com/image/placeholder-image-spec", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"width": 640,
"height": 360
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/placeholder-image-spec",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"width": 640,
"height": 360
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/placeholder-image-spec", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"width":640,"height":360}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"width":640,"height":360}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/placeholder-image-spec", 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": 640,
"height": 360
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.placeholder_image_spec",
"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
No descarga, renderiza ni almacena imágenes; por ello, la misma entrada siempre produce el mismo JSON compacto sin depender de un servicio remoto.
Preguntas técnicas
¿Esta capacidad crea un archivo de imagen?
No. Devuelve una especificación JSON independiente del renderizador que describe el lienzo, los colores, el texto y la posición centrada de la etiqueta.
¿Cuánto cuesta una solicitud API?
Cada solicitud API cuesta $0.002. El cálculo no utiliza ningún servicio de red externo.