Compruebe la alineación de iconos con la cuadrícula
Las cuadrículas aportan coherencia a una colección de iconos, pero las pequeñas diferencias entre coordenadas son difíciles de detectar siempre a simple vista.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Este comprobador compara los bordes izquierdo, superior, derecho e inferior del cuadro delimitador de un icono con las líneas más cercanas de una cuadrícula regular. Indique el tamaño de la cuadrícula y, si lo necesita, una tolerancia; recibirá un veredicto general y un diagnóstico claro para cada borde. Resulta útil en revisiones de sistemas de diseño, procesos de recursos gráficos y controles de calidad automatizados que deben aplicar la misma regla medible a todos los iconos.
Describa el icono y la cuadrícula en un mismo sistema de coordenadas
Introduzca el cuadro delimitador del icono mediante cuatro coordenadas: izquierda, arriba, derecha y abajo. Los cuatro valores deben emplear la misma unidad y el mismo origen que la cuadrícula. Por ejemplo, si un viewBox SVG se mide en unidades de usuario, indique tanto las coordenadas del cuadro como el tamaño de cuadrícula en esas unidades; si su proceso de exportación utiliza píxeles, use píxeles en todos los campos. La cuadrícula tiene su origen en cero y sus líneas aparecen en cada múltiplo entero del tamaño indicado, tanto en sentido positivo como negativo. Por ello, una cuadrícula de tamaño ocho contiene líneas en cero, ocho, dieciséis y veinticuatro, además de menos ocho y menos dieciséis. El análisis trata de igual forma las coordenadas horizontales y verticales porque el espaciado es uniforme y cuadrado. Se admiten coordenadas fraccionarias, algo importante cuando una transformación vectorial o un escalado genera límites de subpíxel. La coordenada derecha puede coincidir con la izquierda y la inferior con la superior, aunque un icono visible normal suele tener anchura y altura positivas. Los límites invertidos se rechazan porque no describen un cuadro válido. El tamaño de cuadrícula debe ser positivo: cero o un valor negativo producen un error de entrada, no un resultado engañoso.
Interprete la tolerancia y el resultado de cada borde
La tolerancia determina a qué distancia máxima de una línea puede encontrarse un borde para considerarse alineado. Su valor predeterminado es cero, que exige una coincidencia exacta después de normalizar los cálculos numéricos. Una tolerancia positiva es inclusiva: con 0.02, un borde situado exactamente a 0.02 unidades de la línea más cercana supera la prueba. Para cada borde, la respuesta muestra la coordenada original, la línea de cuadrícula más próxima, la distancia absoluta entre ambas y un valor booleano de alineación. También incluye un indicador general que solo es verdadero cuando cumplen los cuatro bordes y una lista de bordes desalineados con todos los fallos. Así puede tomar una decisión rápida y, al mismo tiempo, ofrecer información útil. Un proceso de integración continua puede fallar según el indicador general, mientras una herramienta de diseño señala exactamente qué lados requieren corrección. Los decimales calculados se normalizan a doce posiciones para impedir que los artefactos habituales de coma flotante aparezcan en la respuesta. Si un borde queda justo a mitad de camino entre dos líneas, ambas están igual de cerca; la implementación elige una de forma determinista, sin alterar la distancia ni el veredicto. La tolerancia debe ser cero o positiva y conviene ajustarla al proceso de exportación, no ampliarla hasta vaciar de sentido la regla.
Integre la comprobación en el control de calidad de iconos
El procedimiento más fiable mide los límites después de aplicar las transformaciones que formarán parte del recurso publicado. Un icono puede estar dibujado cuidadosamente sobre la cuadrícula en el documento original y adquirir coordenadas fraccionarias tras un escalado, la expansión de trazos, un cambio del viewBox o una optimización de exportación. Envíe esos límites finales al comprobador y guarde el resultado junto con otros controles, como las reglas de nombres, dimensiones y tamaño de archivo. Para iconos de píxel estrictos, utilice tolerancia cero si la exportación debe generar coordenadas enteras de cuadrícula. Para recursos vectoriales con antialiasing, adopte una tolerancia pequeña y documentada que refleje el redondeo legítimo de sus herramientas. Aplique el mismo tamaño y la misma tolerancia a toda la colección para que un resultado válido signifique siempre lo mismo. Ante un fallo, consulte primero la lista de bordes desalineados y use después la línea más cercana de cada borde como objetivo de corrección. Recuerde que esta capacidad solo evalúa el cuadro delimitador: no juzga el equilibrio óptico, la posición de los trazos, los puntos de control internos, el peso visual ni la idoneidad artística de la cuadrícula. Proporciona una afirmación geométrica limitada, repetible y fácil de automatizar sin red, estado oculto ni interpretaciones propias de una herramienta.
Qué puede hacer con ella
Aplique la cuadrícula de un sistema de diseño
Compruebe cada icono enviado con el mismo tamaño de cuadrícula y tolerancia antes de incorporarlo a la biblioteca compartida.
Detecte desviaciones de exportación
Examine los límites finales de SVG o mapas de bits cuando el escalado y la optimización hayan introducido coordenadas fraccionarias.
Explique los controles fallidos
Devuelva la línea más cercana y la distancia de cada borde para que quien contribuya sepa exactamente qué debe corregir.
Preguntas frecuentes
¿Cuánto cuesta la comprobación?
Cada comprobación mediante API cuesta $0.002. La versión del navegador puede ejecutarse localmente en esta página.
¿Dónde se encuentra el origen de la cuadrícula?
La cuadrícula parte de cero. Sus líneas aparecen en cada múltiplo entero, positivo o negativo, del tamaño indicado.
¿La tolerancia incluye el valor límite?
Sí. Un borde cuya distancia sea exactamente igual a la tolerancia se considera alineado.
¿Pueden ser fraccionarios las coordenadas y el tamaño?
Sí. Todas las entradas numéricas pueden ser fraccionarias si son finitas y pertenecen al mismo sistema de coordenadas.
¿Qué ocurre si el tamaño de cuadrícula es cero o negativo?
La solicitud devuelve un error de entrada no válida porque un espaciado no positivo no permite definir la cuadrícula.
¿Se inspecciona un archivo SVG o una imagen?
No. Se comprueban las coordenadas proporcionadas; la extracción de límites del archivo corresponde al paso anterior de su proceso.
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/icon-grid-alignment-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bounding_box":{"left":16.02,"top":7.99,"right":47.98,"bottom":40.01},"grid_size":8}'const res = await fetch("https://api.kit.forhosting.com/image/icon-grid-alignment-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bounding_box": {
"left": 16.02,
"top": 7.99,
"right": 47.98,
"bottom": 40.01
},
"grid_size": 8
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/icon-grid-alignment-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bounding_box": {
"left": 16.02,
"top": 7.99,
"right": 47.98,
"bottom": 40.01
},
"grid_size": 8
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/icon-grid-alignment-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bounding_box":{"left":16.02,"top":7.99,"right":47.98,"bottom":40.01},"grid_size":8}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bounding_box":{"left":16.02,"top":7.99,"right":47.98,"bottom":40.01},"grid_size":8}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/icon-grid-alignment-check", 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
{
"bounding_box": {
"left": 16.02,
"top": 7.99,
"right": 47.98,
"bottom": 40.01
},
"grid_size": 8
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.icon_grid_alignment_check",
"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. |