| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- //print(sqFreetype.loadlib("/usr/lib/x86_64-linux-gnu/libfreetype.so"));
- auto ft_library = new sqFreetype();
- //print(ft_library);
- auto function getFontGlyps(ft_library, font_fname, isMemory=false, max_glyphs=256)
- {
- auto face = new sqFreetypeFace(ft_library, font_fname, 0, isMemory);
- //print(face);
- auto face_num_glyps = face.get_num_glyphs();
- if(face_num_glyps > max_glyphs) face_num_glyps = max_glyphs;
- //auto font_size = 64*12;
- auto font_size = 32*12;
- face.set_char_size(font_size, font_size);
- auto glyphs = array(face_num_glyps);
- for(auto i=0; i < face_num_glyps; ++i)
- {
- glyphs[i] = face.load_char(i);
- }
- return [face, glyphs];
- }
- auto function crossMatch(font1_glyphs, font2_glyphs)
- {
- auto face1 = font1_glyphs[0];
- auto glyphs1 = font1_glyphs[1];
- auto face2 = font2_glyphs[0];
- auto glyphs2 = font2_glyphs[1];
- auto first_char = face2.first_char();
- print(glyphs1.len(), glyphs2.len(), first_char[0], first_char[1], face2.postscript_name());
- for(auto n0=0, len0=glyphs1.len(); n0 < len0; ++n0)
- {
- auto glyph1 = glyphs1[n0];
- for(auto n2=0, len2=glyphs2.len(); n2 < len2; ++n2)
- {
- auto glyph2 = glyphs2[n2];
- if(glyph1 == glyph2)
- {
- auto glyph_index = face2.char_index(n2);
- print("Glyphs are equal", n0, n2, face2.glyph_name(glyph_index));
- break;
- }
- }
- }
- }
- auto font1_fname = "../tmp/CLFGJN_Arial_Bold.font";
- //auto font1_data = readfile(font1_fname);
- //auto font1_glyphs = getFontGlyps(ft_library, font1_data, true);
- //auto font1_glyphs = getFontGlyps(ft_library, font1_fname);
- auto font_ref_bold_glyphs = getFontGlyps(ft_library, "../tmp/Arial_Bold.ttf");
- auto font_ref_glyphs = getFontGlyps(ft_library, "../tmp/Arial.ttf");
- //crossMatch(font1_glyphs, font2_glyphs);
- foreach(fn in ["CLFGJN_Arial_Bold.font", "CLFGKO_Arial.font",
- "CLFGON_Helvetica.font", "CLFGPO_Helvetica_Bold.font",
- "CLFHEN_Helvetica_Bold.font", "CLFHEO_Helvetica.font"])
- {
- print("\nShowing font ", fn);
- auto font_glyphs = getFontGlyps(ft_library, "../tmp/" + fn);
- crossMatch(font_glyphs, (fn.indexOf("Bold") > 0) ? font_ref_bold_glyphs : font_ref_glyphs);
- }
- /*
- for(auto n2=0, len2=glyphs2.len(); n2 < len2; ++n2)
- {
- auto glyph_index = face2.char_index(n2);
- print("Glyphs name", n2, glyph_index, face2.glyph_name(glyph_index));
- }
- */
|