मैं विंडोज "सेगो यूआई इमोजी" से रंगीन ग्लिफ प्रस्तुत करने की कोशिश कर रहा हूं- नवीनतम फ्रेटीप 2.8.1 के साथ नहीं (मैंने एकल कोड या बहुप्रचारित किए बिना स्रोत कोड से x64 डीबग संस्करण संकलित किया) और ओपनजीएल। तो मैं Windows\Fonts
निर्देशिका (SHA256 = d67717a6fe84e21bc580443add16ec920e6988ca067041d0461c641f75074a8c
) से seguiemj.ttf
का उपयोग करता हूं, लेकिन FT_HAS_COLOR हमेशा झूठा लौटाता है। मैंने इसे EmojiOneColor-SVGinOT.ttf
eosrei from github से भी आजमाया, जिसके परिणामस्वरूप एक ही व्यवहार होता है।मैं freetype के साथ "सेगो यूआई इमोजी" से रंगीन ग्लिफ कैसे प्रस्तुत कर सकता हूं?
एंड्रॉइड के लिए this फ़ाइल का उपयोग करते समय, FT_HAS_COLOR
सत्य लौटाता है और बिटमैप स्लॉट वैसे भी भर नहीं जाता है।
FT_Library library;
FT_Face face;
FT_Init_FreeType(&library);
FT_New_Face(library, "resources/fonts/seguiemj.ttf", 0, &face);
bool has_color = FT_HAS_COLOR(face);
debug(LOG_INFO, 0, "font has colors: %s", has_color ? "yes" : "no");
std::u32string s = U" ";
FT_GlyphSlot slot = face->glyph;
for (auto c : s)
{
int glyph_index = FT_Get_Char_Index(face, c);
FT_Error error = FT_Load_Glyph(face, glyph_index, FT_LOAD_DEFAULT|FT_LOAD_COLOR);
if (error)
continue;
error = FT_Render_Glyph(slot, FT_RENDER_MODE_NORMAL);
if (error)
continue;
if (slot->bitmap.pixel_mode == FT_PIXEL_MODE_BGRA)
debug(LOG_INFO, 0, "glyph is colored");
...
}
असल में मैं ऊपर कोड का उपयोग करें, जो केवल कि फ़ॉन्ट फ़ाइलों की मोनोक्रोम बिटमैप प्राप्त कर सकता है और पिक्सेल मोड हमेशा FT_PIXEL_MODE_GRAY है। वर्ड में
Emojis/फ़ायरफ़ॉक्स
Emojis मेरी applicaton
में वहाँ है कि ठीक करने या मैंने कुछ गलत किया था के लिए कुछ है?
एक [mcve] में संपादित करें। साथ ही, जीथ्यूब फ़ॉन्ट को लिंक करें और आपके द्वारा किए गए माइक्रोसॉफ्ट फ़ॉन्ट के md5sum/sha256 में संपादित करें। – genpfault
धन्यवाद, मैंने इसे संपादित किया। जिथब से फ़ॉन्ट पाया जा सकता है [यहां] (https://github.com/eosrei/EmojiOne-color-Font)। (सीमाओं के कारण इसे मेरे पोस्ट में जोड़ने में सक्षम नहीं) –
कोई चिंता नहीं, मैंने इसे आपके लिए संपादित किया। – genpfault