{"id":74805,"date":"2020-03-20T20:42:28","date_gmt":"2020-03-20T17:42:28","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/ttf-parser-0-5-novaya-biblioteka-dlya-raboty-s-truetype-shriftami"},"modified":"2020-03-20T20:42:28","modified_gmt":"2020-03-20T17:42:28","slug":"ttf-parser-0-5-novaya-biblioteka-dlya-raboty-s-truetype-shriftami","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/news\/ttf-parser-0-5-novaya-biblioteka-dlya-raboty-s-truetype-shriftami","title":{"rendered":"ttf-parser 0.5 \u2014 nueva biblioteca para trabajar con fuentes TrueType","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex>      <\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/github.com\/RazrFalcon\/ttf-parser\">ttf-parser<\/a> \u2014 es una biblioteca para el an\u00e1lisis de fuentes TrueType\/OpenType.<\/noindex><br \/>\nLa nueva versi\u00f3n incluye soporte completo para fuentes variables.<br \/>\n(<a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/typography\/opentype\/spec\/otvaroverview\">fuentes variables<\/a>) y la API en C, por lo que decid\u00ed promocionarla en el foro.<\/p>\n<p>Hasta hace poco, si era necesario trabajar con fuentes TrueType, hab\u00eda exactamente dos opciones: FreeType y stb_truetype. La primera es un enorme compendio, la segunda admite un n\u00famero bastante limitado de funciones.<\/p>\n<p>ttf-parser se sit\u00faa en alg\u00fan punto intermedio. Admite todas las mismas tablas TrueType (el formato TrueType consiste en muchas tablas binarias separadas) que FreeType, pero no se encarga de dibujar los glifos.<\/p>\n<p>Adem\u00e1s, ttf-parser contiene muchas otras diferencias significativas:<\/p>\n<ol>\n<li>ttf-parser est\u00e1 escrito en Rust sin el uso de unsafe. FreeType y stb_truetype est\u00e1n escritos en C.<\/li>\n<li>ttf-parser es la \u00fanica implementaci\u00f3n segura (memory-safe). No es posible leer memoria arbitraria. En FreeType constantemente se corrigen vulnerabilidades, y stb_truetype no est\u00e1 dise\u00f1ado para leer fuentes arbitrarias.<\/li>\n<li>ttf-parser es la \u00fanica implementaci\u00f3n thread-safe. Todos los m\u00e9todos de an\u00e1lisis son constantes. La \u00fanica excepci\u00f3n es la asignaci\u00f3n de coordenadas para fuentes variables, pero esta funci\u00f3n es reentrante. FreeType es, en principio, de un solo hilo. stb_truetype \u2014 es reentrante (se pueden usar copias separadas en diferentes hilos, pero no una de varias).<\/li>\n<li>ttf-parser es la \u00fanica implementaci\u00f3n que no utiliza asignaci\u00f3n en \u00abmont\u00f3n\u00bb. Esto permite acelerar el an\u00e1lisis y evitar problemas de OOM.<\/li>\n<li>Adem\u00e1s, casi todas las operaciones aritm\u00e9ticas y conversiones de tipos num\u00e9ricos son verificadas (incluidas las est\u00e1ticas).<\/li>\n<li>En el peor de los casos, la biblioteca puede lanzar una excepci\u00f3n. En la API en C, las excepciones ser\u00e1n capturadas y la funci\u00f3n devolver\u00e1 un error, pero no fallar\u00e1.<\/li>\n<\/ol>\n<p><noindex><\/p>\n<p>Y a pesar de todas las garant\u00edas de seguridad, ttf-parser tambi\u00e9n es la implementaci\u00f3n m\u00e1s r\u00e1pida. Por ejemplo, el an\u00e1lisis de CFF2 es 3.5 veces m\u00e1s r\u00e1pido que en FreeType. El an\u00e1lisis de glyf, por otro lado, es un 10% m\u00e1s lento que en stb_truetype, pero esto es porque no admite fuentes variables, cuya implementaci\u00f3n requiere almacenar informaci\u00f3n adicional. M\u00e1s detalles en <a rel=\"nofollow\" href=\"https:\/\/github.com\/RazrFalcon\/ttf-parser\/blob\/master\/README.md\">README<\/a>.<\/p>\n<p><\/noindex><\/p>\n<p>Fuente: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"http:\/\/www.linux.org.ru\/news\/opensource\/15591144\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>ttf-parser &mdash; \u044d\u0442\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u043e\u0440\u0430 TrueType\/OpenType \u0448\u0440\u0438\u0444\u0442\u043e\u0432. \u0412 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0448\u0440\u0438\u0444\u0442\u043e\u0432 (variable fonts) \u0438 C API, \u0432\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u0447\u0435\u0433\u043e \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u0440\u043e\u0440\u0435\u043a\u043b\u0430\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u043d\u0430 \u043b\u043e\u0440\u0435. \u0414\u043e \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0435\u0441\u043b\u0438 \u0431\u044b\u043b\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 TrueType \u0448\u0440\u0438\u0444\u0442\u0430\u043c\u0438, \u0431\u044b\u043b\u043e \u0440\u043e\u0432\u043d\u043e \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430: FreeType \u0438 stb_truetype. \u041f\u0435\u0440\u0432\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u043c \u043a\u043e\u043c\u0431\u0430\u0439\u043d\u043e\u043c, \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-74805","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"ttf-parser \u2014 \u044d\u0442\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u043e\u0440\u0430 TrueType\/OpenType \u0448\u0440\u0438\u0444\u0442\u043e\u0432. \u0412 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/news\/ttf-parser-0-5-novaya-biblioteka-dlya-raboty-s-truetype-shriftami\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47ttf-parser 0.5 \u2014 \u043d\u043e\u0432\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 TrueType \u0448\u0440\u0438\u0444\u0442\u0430\u043c\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"ttf-parser \u2014 \u044d\u0442\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u043e\u0440\u0430 TrueType\/OpenType \u0448\u0440\u0438\u0444\u0442\u043e\u0432. \u0412 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/news\/ttf-parser-0-5-novaya-biblioteka-dlya-raboty-s-truetype-shriftami\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-20T17:42:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-20T17:42:28+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47ttf-parser 0.5 \u2014 nueva biblioteca para trabajar con fuentes TrueType | ProHoster","description":"ttf-parser es una biblioteca para el an\u00e1lisis de fuentes TrueType\/OpenType. La nueva versi\u00f3n incluye soporte completo para fuentes variables.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/news\/ttf-parser-0-5-novaya-biblioteka-dlya-raboty-s-truetype-shriftami","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47ttf-parser 0.5 \u2014 \u043d\u043e\u0432\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 TrueType \u0448\u0440\u0438\u0444\u0442\u0430\u043c\u0438 | ProHoster","og:description":"ttf-parser \u2014 \u044d\u0442\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u043e\u0440\u0430 TrueType\/OpenType \u0448\u0440\u0438\u0444\u0442\u043e\u0432. \u0412 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445.","og:url":"https:\/\/prohoster.info\/es\/blog\/news\/ttf-parser-0-5-novaya-biblioteka-dlya-raboty-s-truetype-shriftami","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-20T17:42:28+00:00","article:modified_time":"2020-03-20T17:42:28+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"74805","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:07:28","updated":"2022-09-28 06:11:52","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/74805","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=74805"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/74805\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=74805"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=74805"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=74805"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}