freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to know the exact number of glyphs for CID keyed fonts?


From: Hin-Tak Leung
Subject: Re: How to know the exact number of glyphs for CID keyed fonts?
Date: Mon, 30 Dec 2024 18:29:31 +0000 (UTC)

Further to my answer, I think freetype generally tries to present a "consistent" view of the font to users (assuming the font is shipping/released and any anomalies /inconsistency is a bug in the font), and there are internal mechanisms resolving say, glyph counts from maxp table, head table and glyf table being different and inconsistent, and take one as authoritative. You probably have to go quite low-level in freetype to get what you want - find out if a CID-font contains extra glyphs outsides its advertised usage, and may find that some of freetype's auto-correction gets in your way. You probably are better off using font editor APIs like fontforge or ttx to examine "unusual" fonts, or fonts with extra / redundant data at least.
On Monday 30 December 2024 at 18:14:27 GMT, Hin-Tak Leung <htl10@users.sourceforge.net> wrote:


What does "ftdump" show as glyph count?

Think about what you are asking: CID-keyed fonts are, by definition, where glyph ids have specific meanings, and are encoded according to a character collection. So you are asking if it is possible (using freetype) to find glyphs with glyph ids outside of the corresponding character collection's range - using gaps etc to index and encode extra glyphs, or to detect glyph data in a font without glyph ids. The former is probably considered a malformed font, the latter might be a work in progress. Freetype tends to cater for "shipping /released" fonts, so probably lacking a bit in doing either. Have you considered using APIs of one of the font editors instead? If you have a font for which either type of the anomalies exists? Fontforge has a python extension, and there is ttx/fonttools too. You are basically asking for APIs to examine the glyf / CFF / CFF2 table for anomalies in freetype.


On Monday 30 December 2024 at 09:33:08 GMT, Francesco Pretto <ceztko@gmail.com> wrote:


Hello,

I noticed there exists FT_Get_CID_From_Glyph_Index[1] that allows you
to access glyphs by a contiguous random index, albeit it may be
suboptimal because it still ends requiring glyphs to be accessed with
the fetched CID. While this works, I am still missing a method that
can return the exact number of contiguous glyphs in a CID keyed font,
which can be quite informative. FT_FaceRec.num_glyphs for CID keyed
fonts is really the number of last CID - 1, so it's not the correct
number. Questions are:
- Is there any existing API that I can hack to retrieve the real
number of contiguous glyphs in the font?
- why isn't there simply a couple of specialized methods to retrieve
the real glyph count and to load the glyph by contiguous indices?

Cheers,
Francesco

[1] https://freetype.org/freetype2/docs/reference/ft2-cid_fonts.html#ft_get_cid_from_glyph_index
[2] https://freetype.org/freetype2/docs/reference/ft2-face_creation.html#ft_facerec

reply via email to

[Prev in Thread] Current Thread [Next in Thread]