Pregunta

Después de pedir a mi anterior pregunta sobre Uniscribe glifo interletraje , y sin embargo no recibir una respuesta, además de lecturas adicionales sobre google, etc, parece Uniscribe no sea compatible con la extracción de información de ajuste glifo de una fuente.

Por lo tanto, tengo una pregunta de seguimiento sencilla -? ¿Hay buenos ejemplos (preferiblemente con un poco de código C ++) de extraer información de ajuste glifo para una cadena especificada de una fuente

Es mencionado en varios lugares que o Pango, QT o UCI son capaces de hacer esto, pero la documentación es un poco finas en el suelo y estoy luchando para saber por dónde empezar.

Cualquier ayuda me apunta en la dirección correcta recibido con gratitud. Ya tengo el código en el lugar para hacer que los glifos de la manera deseada, simplemente estoy después de la información de ajuste extendido, por lo que puede colocar los glifos un poco mejor.

Gracias,

¿Fue útil?

Solución

Las fuentes OpenType tienen dos formas diferentes de especificar información de ajuste entre caracteres, los cuales son opcionales:

  1. La tabla de kern, heredado de TrueType. Esta tabla suministros de información de ajuste par (es decir, la cantidad que debe desplazada horizontalmente un par particular de caracteres). Microsoft proporciona especificaciones para esta tabla y también suministra algunas funciones de API de Windows, como < a href = "http://msdn.microsoft.com/en-us/library/dd144895%28VS.85%29.aspx" rel = "nofollow noreferrer"> GetKerningPair() y GetFontData() que podría ayudarle a extraer valores.

  2. La tabla GPOS, una mesa de OpenType que al parecer se encarga de todas las formas imaginables de posicionamiento glifo. Microsoft también tiene algunos especificaciones para esta tabla, pero la verdad es que ni siquiera sabe el lugar donde quiere comenzar ... usted probablemente querrá mirar cómo UCI maneja este tipo de cosas.

No he encontrado mucho en la forma de ejemplos de código para cualquiera de esto, aunque me imagino conseguir valores de espaciado manual de la mesa de Kern, es mucho más simple que la mesa GPOS.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top