From c01b346ca472a499199158ab5ce8480886aff965 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Tue, 12 Sep 2023 18:58:23 +0300 Subject: [PATCH] Add support for extracting metadata about the font like weight, width, obliqueness, and italic flag --- fonts/open-sans/OpenSans-LightItalic.ttf | Bin 0 -> 136948 bytes src/glyphs.cpp | 96 +++++++++++++++++++---- src/glyphs.hpp | 1 - test/fontnik.test.js | 35 ++++++++- 4 files changed, 114 insertions(+), 18 deletions(-) create mode 100644 fonts/open-sans/OpenSans-LightItalic.ttf diff --git a/fonts/open-sans/OpenSans-LightItalic.ttf b/fonts/open-sans/OpenSans-LightItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d913f356a982bef28ea2b51cdbcb96f9d1fdfa93 GIT binary patch literal 136948 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 literal 0 HcmV?d00001 diff --git a/src/glyphs.cpp b/src/glyphs.cpp index 2437e3ae8..bae4e0762 100644 --- a/src/glyphs.cpp +++ b/src/glyphs.cpp @@ -14,6 +14,12 @@ #include #include +// freetype2 +extern "C" { +#include +#include FT_TRUETYPE_TABLES_H +} + namespace node_fontnik { struct FaceMetadata { @@ -26,17 +32,12 @@ struct FaceMetadata { std::string family_name{}; std::string style_name{}; + uint16_t weight{}; + float width{}; + bool italic{}; + float oblique{}; + std::vector points{}; - FaceMetadata(std::string _family_name, - std::string _style_name, - std::vector&& _points) - : family_name(std::move(_family_name)), - style_name(std::move(_style_name)), - points(std::move(_points)) {} - FaceMetadata(std::string _family_name, - std::vector&& _points) - : family_name(std::move(_family_name)), - points(std::move(_points)) {} }; struct GlyphPBF { @@ -88,6 +89,31 @@ struct ft_face_guard { FT_Face* face_; }; + +float getWidth(FT_UInt16 usWidthClass) { + switch (usWidthClass) { + case /* FWIDTH_ULTRA_CONDENSED */ 1: + return 50.f; + case /* FWIDTH_EXTRA_CONDENSED */ 2: + return 62.5f; + case /* FWIDTH_CONDENSED */ 3: + return 75.f; + case /* FWIDTH_SEMI_CONDENSED */ 4: + return 87.5f; + default: + case /* FWIDTH_NORMAL */ 5: + return 100.f; + case /* FWIDTH_SEMI_EXPANDED */ 6: + return 112.5f; + case /* FWIDTH_EXPANDED */ 7: + return 125.f; + case /* FWIDTH_EXTRA_EXPANDED */ 8: + return 150.f; + case /* FWIDTH_ULTRA_EXPANDED */ 9: + return 200.f; + } +} + struct AsyncLoad : Napi::AsyncWorker { using Base = Napi::AsyncWorker; AsyncLoad(Napi::Buffer const& buffer, Napi::Function const& callback) @@ -123,6 +149,11 @@ struct AsyncLoad : Napi::AsyncWorker { faces_.reserve(static_cast(num_faces)); } if (ft_face->family_name != nullptr) { + FaceMetadata metadata{ft_face->family_name}; + if (ft_face->style_name) { + metadata.style_name = ft_face->style_name; + } + std::set points; FT_ULong charcode; FT_UInt gindex; @@ -131,12 +162,43 @@ struct AsyncLoad : Napi::AsyncWorker { charcode = FT_Get_Next_Char(ft_face, charcode, &gindex); if (charcode != 0) points.emplace(charcode); } - std::vector points_vec(points.begin(), points.end()); - if (ft_face->style_name != nullptr) { - faces_.emplace_back(ft_face->family_name, ft_face->style_name, std::move(points_vec)); - } else { - faces_.emplace_back(ft_face->family_name, std::move(points_vec)); + metadata.points = std::vector(points.begin(), points.end()); + + TT_Header* head = reinterpret_cast(FT_Get_Sfnt_Table(ft_face, FT_SFNT_HEAD)); + TT_OS2* os2 = reinterpret_cast(FT_Get_Sfnt_Table(ft_face, FT_SFNT_OS2)); + TT_Postscript* post = reinterpret_cast(FT_Get_Sfnt_Table(ft_face, FT_SFNT_POST)); + + // Weight + if (os2) { + metadata.weight = os2->usWeightClass; + } else if (head) { + metadata.weight = (head->Mac_Style & (/* condensed */ 1u << 0)) ? 700 : 400; + } + + // Width + if (os2) { + metadata.width = getWidth(os2->usWidthClass); + } else if (head) { + if (head->Mac_Style & (/* condensed */ 1u << 5)) { + metadata.width = 75.f; + } else if (head->Mac_Style & (/* expanded */ 1u << 6)) { + metadata.width = 125.f; + } } + + // Italic + if (os2) { + metadata.italic = os2->fsSelection & (/* italic */ 1u << 0); + } else if (head) { + metadata.italic = head->Mac_Style & (/* italic */ 1u << 1); + } + + // Slant + if (post) { + metadata.oblique = static_cast(post->italicAngle) / float(1 << 16); + } + + faces_.emplace_back(std::move(metadata)); } else { SetError("font does not have family_name or style_name"); return; @@ -156,6 +218,10 @@ struct AsyncLoad : Napi::AsyncWorker { if (!face.style_name.empty()) { js_face.Set("style_name", face.style_name); } + js_face.Set("weight", face.weight); + js_face.Set("width", face.width); + js_face.Set("italic", face.italic); + js_face.Set("oblique", face.oblique); Napi::Array js_points = Napi::Array::New(env, face.points.size()); std::uint32_t p_idx = 0; for (auto const& pt : face.points) { diff --git a/src/glyphs.hpp b/src/glyphs.hpp index 33078736a..798c1bc95 100644 --- a/src/glyphs.hpp +++ b/src/glyphs.hpp @@ -1,7 +1,6 @@ #pragma once #include -#include namespace node_fontnik { diff --git a/test/fontnik.test.js b/test/fontnik.test.js index a1505c3ce..07725f6b0 100644 --- a/test/fontnik.test.js +++ b/test/fontnik.test.js @@ -24,27 +24,50 @@ function jsonEqual(t, key, json) { var expected = JSON.parse(fs.readFileSync(__dirname + '/expected/load.json').toString()); var firasans = fs.readFileSync(path.resolve(__dirname + '/../fonts/firasans-medium/FiraSans-Medium.ttf')); var opensans = fs.readFileSync(path.resolve(__dirname + '/../fonts/open-sans/OpenSans-Regular.ttf')); +var opensans_lightitalic = fs.readFileSync(path.resolve(__dirname + '/../fonts/open-sans/OpenSans-LightItalic.ttf')); var invalid_no_family = fs.readFileSync(path.resolve(__dirname + '/fixtures/fonts-invalid/1c2c3fc37b2d4c3cb2ef726c6cdaaabd4b7f3eb9.ttf')); var guardianbold = fs.readFileSync(path.resolve(__dirname + '/../fonts/GuardianTextSansWeb/GuardianTextSansWeb-Bold.ttf')); var osaka = fs.readFileSync(path.resolve(__dirname + '/../fonts/osaka/Osaka.ttf')); test('load', function(t) { - t.test('loads: Fira Sans', function(t) { + t.test('loads: Fira Sans Medium', function(t) { fontnik.load(firasans, function(err, faces) { t.error(err); t.equal(faces[0].points.length, 789); t.equal(faces[0].family_name, 'Fira Sans'); t.equal(faces[0].style_name, 'Medium'); + t.equal(faces[0].weight, 500); + t.equal(faces[0].width, 100); + t.equal(faces[0].italic, false); + t.equal(faces[0].oblique, 0); t.end(); }); }); - t.test('loads: Open Sans', function(t) { + t.test('loads: Open Sans Regular', function(t) { fontnik.load(opensans, function(err, faces) { t.error(err); t.equal(faces[0].points.length, 882); t.equal(faces[0].family_name, 'Open Sans'); t.equal(faces[0].style_name, 'Regular'); + t.equal(faces[0].weight, 400); + t.equal(faces[0].width, 100); + t.equal(faces[0].italic, false); + t.equal(faces[0].oblique, 0); + t.end(); + }); + }); + + t.test('loads: Open Sans Light Italic', function(t) { + fontnik.load(opensans_lightitalic, function(err, faces) { + t.error(err); + t.equal(faces[0].points.length, 1009); + t.equal(faces[0].family_name, 'Open Sans'); + t.equal(faces[0].style_name, 'Light Italic'); + t.equal(faces[0].weight, 300); + t.equal(faces[0].width, 100); + t.equal(faces[0].italic, true); + t.equal(faces[0].oblique, -12); t.end(); }); }); @@ -57,6 +80,10 @@ test('load', function(t) { t.equal(faces[0].family_name, '?'); t.equal(faces[0].hasOwnProperty('style_name'), false); t.equal(faces[0].style_name, undefined); + t.equal(faces[0].weight, 700); + t.equal(faces[0].width, 100); + t.equal(faces[0].italic, false); + t.equal(faces[0].oblique, 0); t.end(); }); }); @@ -66,6 +93,10 @@ test('load', function(t) { t.error(err); t.equal(faces[0].family_name, 'Osaka'); t.equal(faces[0].style_name, 'Regular'); + t.equal(faces[0].weight, 400); + t.equal(faces[0].width, 100); + t.equal(faces[0].italic, false); + t.equal(faces[0].oblique, 0); t.end(); }); });