2010-09-11 9 views
9

Estoy probando FTGLES para mostrar dinámicamente el texto en fuentes arbitrarias en OpenGL-ES en iOS (consulte la pregunta SO here). Esa biblioteca parece requerir acceso directo al archivo TTF para usar la fuente. Al usar métodos kosher, ¿se puede acceder directamente, por ruta, a los archivos de fuentes del sistema en iOS? He RTFM y no pude encontrar nada.En iOS, ¿puedo acceder al archivo TTF de la fuente proporcionada por el sistema

Al margen de eso, alguien sabe si está aprobado por Apple para copiar las fuentes del sistema en su aplicación (antes del envío).

+0

Acceder a cualquier elemento fuera del entorno limitado de la aplicación, excepto por la API oficial: s, es motivo de rechazo. Entonces, no importa si es realmente posible, recomendaría no hacerlo. –

+0

Sí, estaba buscando algo dentro de los límites. Edité la publicación para que quede más clara. –

Respuesta

7

Mi solución fue inspirada por skia.

Aunque no puede sistema integrado de ficheros directamente, todavía tenemos una manera indirecta acceder:

Crear un CGFont con su nombre de la fuente querido, todos los contenidos de la tabla SFNT de esta CGFont se puede acceder por CGFontCopyTableTags simplemente llamando() y CGFontCopyTableForTag().

A continuación, se pueden construir los datos de una fuente ttf/otf usando estas tablas, guarde la nueva fuente creada en el disco, puede usarla en FTGL ES más adelante.

+0

Interesante. ¿Tienes código de trabajo? –

+3

https://gist.github.com/1892760. no se han probado completamente con todas las fuentes incorporadas, pero funciona bien en todos mis casos. – EXphinx

6

No, no puede acceder a los archivos TTF instalados en el sistema en dispositivos iOS. Por lo tanto, deberá incrustar los tipos de letra que le gustaría usar.

Descargo de responsabilidad: No soy abogado, y la aceptabilidad de usar fuentes del sistema suministradas por Apple en una aplicación de iOS es una pregunta legal sobre la interpretación de licencias de software, por lo que es posible que desee buscar asesoramiento profesional.

Desea insertar una fuente suministrada por Apple en su aplicación. La definición de "inserción" es un poco nebulosa, por lo que agregar la fuente a una aplicación de iOS puede o no ajustarse a la definición de "inserción" del titular de los derechos de autor. Algunos tipos de casas definen "inserción" como el significado de solo ver contenido predeterminado en la fuente incluida; otro contenido medio de visualización y edición en esa fuente. La visualización del contenido que cambia durante la ejecución de su aplicación se encuentra entre estos dos casos.

De acuerdo con el Mac OS X Lion 10.7.2 ELUA:

F. Fuentes. Sujeto a los términos y condiciones de esta Licencia, puede usar las fuentes incluidas con el Software de Apple para visualizar e imprimir el contenido de mientras ejecuta el Software de Apple; sin embargo, solo puede incrustar fuentes en el contenido si eso está permitido por las restricciones de incrustación que acompañan a la fuente en cuestión. Estas restricciones de incrustación pueden ser que se encuentran en el panel Fuente de libro/Vista previa/Mostrar información de fuente.

Si el uso de las fuentes en una aplicación de iOS es realmente "incrustado", solo necesita comprobar las fuentes particulares que desea utilizar en el Libro de fuentes.

En esta situación, encontraría una fuente o conjunto de fuentes donde tenía permiso explícito para incluir las fuentes en la aplicación de iOS. Comenzaría por comprar en las diferentes casas tipo para un esquema de licencia que explícitamente permitía este uso. Esto puede ser costoso, por lo que otra táctica sería buscar tipos de fuente abiertos con una licencia que permita este uso. O, para un conjunto muy limitado de personajes (por ejemplo, solo números), incluso consideraría dibujar mi propio tipo de letra.

+0

Gracias por la buena respuesta. Sin embargo, es una pena ... Creo que los beneficios de seguridad del sandboxing superan los beneficios de dar acceso ilimitado a los recursos del sistema a las aplicaciones, lo que podría evitar que tu aplicación sea más grande o más grande. – jheriko

0

No. Su aplicación no puede acceder a los archivos fuera de la zona de pruebas de su aplicación. Período (bueno, a menos que esté jailbroken;). Pero puedes agrupar el archivo de fuente. Ahora, no veo ninguna razón por la cual Apple rechazaría tu aplicación, ya que está usando un archivo ya disponible en el dispositivo, y solo estás incluyendo tu archivo local. En términos de derechos de autor, Apple ya tiene ese permiso para usarlo en su dispositivo, por lo que su inclusión no debería ser un problema.

Digo debería porque no he necesitado esta capacidad y no la he probado con una presentación propia, pero en base a instinto legal y problemas de copyright de fuentes que he visto en el pasado, esperaría que no sería un problema

Cuestiones relacionadas