¿Ü°û¼± ÆùÆ®ÀÇ °¡Àå Å« ÀåÁ¡Àº È®´ë¿Í Ãà¼Ò°¡ ÀÚÀ¯·Ó´Ù´Â Á¡ÀÌ´Ù. ¹°·Ð ºñÆ®¸Ê ÆùÆ®µµ Á¦ÇÑÀûÀ̱â´Â ÇÏÁö¸¸ ¾î´À Á¤µµ È®´ë, Ãà¼Ò°¡ °¡´ÉÀº ÇÏ´Ù. ±×·¯³ª ·¡½ºÅÍ ¹æ½ÄÀÇ ºñÆ®¸ÊÀº È®´ë½Ã °è´Ü Çö»óÀÌ ³ªÅ¸³´Ù´Â ¸é¿¡¼ ¿Ü°û¼± ÆùÆ®¿¡ ºñÇØ ÁúÀûÀ¸·Î ¿¼¼ÀÌ´Ù. ¿Ü°û¼± ÆùÆ®´Â °î¼±ÀÇ Á¤º¸°¡ º¤ÅÍ ¹æ½ÄÀÇ ÁÂÇ¥·Î ÀúÀåµÇ¾î ÀÖÀ¸¸ç È®´ë ¹èÀ²¸¸Å °î¼±À» ´Ù½Ã °è»êÇÏ¿© ±×¸®¹Ç·Î ¾ðÁ¦³ª ºÎµå·¯¿î ¸ð¾çÀ¸·Î Ãâ·ÂµÈ´Ù.
±×·¯³ª ¿Ü°û¼± ÆùÆ®µµ ¿ÏÀüÇÏÁö´Â ¾Ê¾Æ¼ ¾à°£ÀÇ ¹®Á¦°¡ ÀÖ´Ù. È®´ë, Ãà¼Ò¶õ ¿ø·¡ÀÇ µðÀÚÀÎµÈ ¸ð¾ç¿¡ ÀÎÀ§ÀûÀÎ °¡°øÀ» ÇÏ´Â °ÍÀÌ´Ù º¸´Ï ¿øÄ¡¾Ê°Ô ºÎÀÚ¿¬½º·¯¿î ¸ð¾çÀÌ ¸¸µé¾îÁö±âµµ ÇÑ´Ù. È®´ëÇÒ ¶§µµ ¹®Á¦°¡ ÀÖ±â´Â ÇÏÁö¸¸ ƯÈ÷ Ãà¼ÒÇÒ ¶§ ¹®Á¦Á¡ÀÌ ´«¿¡ ¶ç°Ô µå·¯³´Ù. ¾î¶² ¹®Á¦Á¡ÀÌ ÀÖ´ÂÁö Ãà¼ÒÇÒ ¶§ÀÇ Ãâ·Â °á°úµéÀ» °¡Á¤ÇØ º¸ÀÚ. ´ÙÀ½Àº ¾ËÆÄºª H ¹®ÀÚ¸¦ ´Ü°èÀûÀ¸·Î Ãà¼ÒÇÑ ¿¹ÀÌ´Ù.
Ãà¼ÒÇÒ ¶§´Â Ãà¼Ò ¹èÀ²¿¡ µû¶ó ±Û¸®ÇÁ¿¡ ÀúÀåµÈ ÁÂÇ¥¸¦ °öÇÏ°í ³ª´©¾î Çȼ¿ ÁÂÇ¥¸¦ °áÁ¤Çϴµ¥ ÀÌ °úÁ¤¿¡¼ ½Ç¼ö Àý»èÀÌ ¹ß»ýÇÑ´Ù. 100À» 2·Î ³ª´©¸é Á¤È®ÇÏ°Ô 50ÀÌ µÇÁö¸¸ 3À¸·Î ³ª´©¸é 33.3333ÀÌ µÇ¸ç À̶§ ¼Ò¼öÁ¡ ÀÌÇϸ¦ ¹ö¸®¸é 0.3333¸¸ÅÀÇ ¿ÀÂ÷°¡ ¹ß»ýÇÏ´Â °ÍÀÌ´Ù. ¾Æ¹«¸® Á¤¹ÐÇÏ°Ô °è»êÀ» ÇÑ´Ù ÇÏ´õ¶óµµ ÃÖÁ¾ Ãâ·Â ÀåÄ¡°¡ ½Ç¼ö ´ÜÀ§ÀÇ ÁÂÇ¥¸¦ Ç¥ÇöÇÏÁö ¸øÇÏ´Â ·¡½ºÅÍ ÀåºñÀ̱⠶§¹®¿¡ ÀÌ ¿ÀÂ÷¸¦ ¾î¶»°Ô ÇÒ ¹æ¹ýÀº ¾ø´Ù.
´õ ½É°¢ÇÑ ¹®Á¦´Â ¹®ÀÚÀÇ ÁøÇà ÆøÃ³·³ ¼ø¼´ë·Î ´©ÀûµÇ´Â °ªÀº À§Ä¡¿¡ µû¶ó ¿ÀÂ÷ÀÇ ¹ß»ý ¿©ºÎ°¡ ´Þ¶óÁø´Ù. ¶È°°Àº ±ÛÀÚ¶óµµ ¶Ç´Â °°Àº ±ÛÀÚÀÇ ´Ù¸¥ ºÎºÐÀÌ¶óµµ ¾î´À À§Ä¡¿¡¼ ½ÃÀÛÇϴ°¡¿¡ µû¶ó ½Ç¼ö Àý»èÀÌ ¹ß»ýÇÒ ¼öµµ ÀÖ°í ±×·¸Áö ¾ÊÀ» ¼öµµ ÀÖ´Ù. ÀÌ·± ÀÌÀ¯·Î Ãà¼Ò¸¦ ÇÏ´Ù º¸¸é H ¹®ÀÚÀÇ ¾çÂÊ ¼öÁ÷ ȹÀÇ ±½±â°¡ ´Ù¸£°Ô Ãâ·ÂµÉ ¼ö ÀÖ´Ù. µÎ ȹÀÇ ±½±â°¡ ¶È°°ÀÌ °è»êµÇ¾ú´õ¶óµµ Ãâ·Â ÁÂÇ¥¿Í ´õÇØ ¹Ý¿Ã¸²À» ÇÏ´Ù º¸¸é ¾î¶² °æ¿ì´Â 1ÀÌ µÇ°í ¾î¶² °æ¿ì´Â 2°¡ µÇ¾î ¹ö¸®´Â °ÍÀÌ´Ù. º¸´Ù½ÃÇÇ ±ÛÀÚ ¸ð¾çÀÌ ±²ÀåÈ÷ ±Ã»öÇØ º¸ÀδÙ. ´ÙÀ½Àº Á» ´õ ½É°¢ÇÑ °æ¿ì¸¦ º¸ÀÚ.
ÇØ»óµµ°¡ ³·Àº ÀåºñÀÇ °æ¿ì Ãà¼Ò¸¦ ÇÏ´Ùº¸¸é ȹÀÌ »ç¶óÁö±âµµ ÇÑ´Ù. ¿µ¹® ¼Ò¹®ÀÚ mÀº ´Ù¸®°¡ ¼¼°³ÀÌ¸ç °¢ ´Ù¸® »çÀÌ¿¡ ¿©¹éÀÌ ÃÖ¼ÒÇÑ ÇÑ ÁÙ¾¿Àº µé¾î°¡¾ß ÇÑ´Ù. ÀÌ ¹®ÀÚ¸¦ Ç¥ÇöÇÏ·Á¸é ¿©¹éÀ» Á¦¿ÜÇÑ ±Û¸®ÇÁÀÇ ÆøÀÌ ÃÖ¼ÒÇÑ 5Çȼ¿Àº µÇ¾î¾ß Çϳª ±×º¸´Ù ÀÛ¾ÆÁö¸é ´Ù¸®°¡ ÇÕÃÄÁ® n ¹®ÀÚ¿Í ±¸º°µÇÁö ¾Ê´Â´Ù. ÀÌ ¹®Á¦´Â Ãâ·Â ǰÁúÀÌ ¿¹»Ú°í ¾È ¿¹»Ú°íÀÇ ¹®Á¦°¡ ¾Æ´Ï¶ó ¾Æ¿¹ ´Ù¸¥ ¹®ÀÚ°¡ µÇ¾î ¹ö¸®¹Ç·Î ±²ÀåÈ÷ ½É°¢ÇÏ´Ù.
¿µ¹®ÀÇ °æ¿ì´Â ±×·¡µµ ±ÛÀÚ ¸ð¾çÀÌ ´Ü¼øÇؼ ¿Ø¸¸Çؼ´Â ÀÌ·± °æ¿ì°¡ µå¹°Áö¸¸ ÇѱÛÀÇ °æ¿ì´Â ±ÛÀÚ°¡ º¹ÀâÇØ¼ ²À ÇÊ¿äÇÑ È¹ÀÌ »ç¶óÁö´Â °æ¿ì°¡ ¸¹´Ù. ¿¹¸¦ µé¾î "Ȳ" °°Àº ±ÛÀÚ¸¦ 8 Çȼ¿ ÀÌÇÏ·Î Ãà¼ÒÇϸé ÀÛÀº ȹÀÌ »ç¶óÁ® "Ⱦ"ÀÌ µÉ ¼öµµ ÀÖ°í "Èö"ó·³ º¸À̱⵵ ÇÑ´Ù. "¤¿"ÀÇ °¡·ÎȹÀÌ ³Ê¹« ª¾Æ ¾Æ¿¹ »ç¶óÁ® ¹ö¸° °ÍÀÌ´Ù. ÇѱÛÀÌ ÀÌ Áö°æÀε¥ ÈξÀ ´õ º¹ÀâÇÑ ¹®ÀÚÀÎ ÇÑÀÚ´Â ¾î¶°ÇÒÁö ±»ÀÌ ¼³¸íÇÏÁö ¾Ê¾Æµµ ÁüÀÛÀÌ µÉ °ÍÀÌ´Ù.
¹°·Ð ÇØ»óµµ°¡ ³·¾Æ ±ÛÀÚÀÇ °¡µ¶¼ºÀÌ ¶³¾îÁö´Â °ÍÀº ¾î¿ ¼ö ¾ø´Â ¹®Á¦ÀÌ´Ù. ±ú¾Ë¸¸ÇÑ Å©±â·Î Ãà¼ÒÇØ ³õ°íµµ ±× ±ÛÀÚ°¡ Á¦´ë·Î º¸À̱⸦ ¹Ù¶ö ¼ö´Â ¾ø´Ù. ÇÏÁö¸¸ ÀÎÀ§ÀûÀÎ Á¶ÀÛÀ» ÅëÇØ Ãâ·ÂµÇ´Â ¿Ü°û¼± ÆùÆ®´Â ÇØ»óµµ°¡ Àû´çÇØµµ ÀÌ·± °æ¿ì°¡ »ý°¢º¸´Ù ºó¹øÈ÷ ¹ß»ýÇÑ´Ù´Â °ÍÀÌ ¹®Á¦´Ù. ÇØ»óµµ°¡ ³·À» °æ¿ì ±ÛÀÚÀÇ Æ¯Á¤ ºÎÀ§¸¦ ´Ù¼Ò °úÁ¤Çؼ¶óµµ ÆÇµ¶ °¡´ÉÇÏ°Ô Ãâ·ÂÇØ¾ß Çϸç ÇØ»óµµ°¡ ÃæºÐÇÒ °æ¿ì¶óµµ ÃÖ´ëÇÑ ±ÕÇüÀ» ¸ÂÃß¾î ¿¹»Ú°Ô Ãâ·ÂÇϱâ À§ÇØ ÃÖ¼±À» ´ÙÇØ¾ß ÇÑ´Ù.
ÃÖÁ¾ ±ÛÀÚÀÇ Ãâ·Â ¸ð¾çÀ» ´Ùµë±â À§Çؼ´Â ±Û¸®ÇÁÀÇ °î¼± Á¤º¸ ¿Ü¿¡µµ Ãß°¡ÀûÀÎ Á¤º¸°¡ ÇÊ¿äÇѵ¥ ÀÌ Á¤º¸¸¦ ÈùÆ®(Hint)¶ó°í ÇÑ´Ù. ¿Ü°û¼± ÆùÆ®´Â ¼öÇÐÀû °úÁ¤À» °ÅÃÄ ¸¸µé¾îÁø ±Û¸®ÇÁ¿¡ ÈùÆ® Á¤º¸¸¦ Àû¿ëÇÏ¿© ÃÖÁ¾ÀûÀ¸·Î Çѹø ´õ °¡´ÙµëÀ½À¸·Î½á Á» ´õ º¸±â ÁÁ°í °¡µ¶¼ºÀÌ ³ôÀº ¸ð¾çÀ¸·Î °¡°øÇÑ´Ù. ÈùÆ® Á¤º¸ÀÇ ¿¹¸¦ µéÀÚ¸é "HÀÇ µÎ ȹÀº Å©±â°¡ °°¾Æ¾ß ÇÑ´Ù" ¶óµç°¡ "mÀÇ ´Ù¸® ¼ÂÀº ¸ðµÎ º¸¿©¾ß ÇÑ´Ù", "¾Æ¹«¸® À۾Ƶµ ÀÌ È¹Àº »ý·«Çؼ´Â ¾ÈµÈ´Ù" ´Â ½ÄÀ¸·Î µÇ¾î ÀÖÀ» °Í´Ù. ¹°·Ð ¿ä·¸°Ô ¸»·Î µÇ¾î ÀÖÀ» ¸®´Â ¾ø°í ¾ÐÃàµÈ ÇüÅ·ΠºÎȣȵǾî ÀÖ´Ù.
ÈùÆÃ(¶Ç´Â ±×¸®µå ÇÍÆÃÀ̶ó°íµµ ÇÑ´Ù)Àº ÈùÆ® Á¤º¸¸¦ ÂüÁ¶ÇÏ¿© ±Û²Ã¿¡ ÀÎÀ§ÀûÀÎ º¯ÇüÀ» °¡ÇÏ´Â µ¿ÀÛÀÌ´Ù. ÆùÆ® Æ÷¸Ëº°·Î ÈùÆ® Á¤º¸¸¦ ±¸¼ºÇÏ´Â ¹æ¹ý°ú Àû¿ëÇÏ´Â ¹æ¹ýÀÌ ´Ù¸¥µ¥ Å©°Ô ´ÙÀ½°ú °°Àº ¹æ½ÄÀ¸·Î ºÐ·ùÇÒ ¼ö ÀÖ´Ù.
¡á ¸í½ÃÀû ÈùÆÃ : ÈùÆÃÀ» ¼öÇàÇÏ´Â ÇÁ·Î±×·¥À» ÆùÆ®¿¡ ³»ÀåÇÏ´Â ¹æ½ÄÀÌ´Ù. ÆùÆ®´Â Ç÷§Æû µ¶¸³ÀûÀ̾î¾ß ÇϹǷΠÀÌ ÇÁ·Î±×·¥Àº °¡»ó ¸Ó½Å ±â¹ÝÀÇ op ÄÚµå·Î µÇ¾î ÀÖ´Ù. ÆùÆ® µå¶óÀ̹ö´Â ¸Å ±Û¸®ÇÁ¸¦ Ãâ·ÂÇÒ ¶§¸¶´Ù op Äڵ带 ¼öÇàÇÏ¿© ¸ð¾çÀ» ´Ùµë´Â´Ù. À©µµ¿ìÁîÀÇ Æ®·ç ŸÀÔ ÆùÆ®°¡ ÀÌ ¹æ½ÄÀ¸·Î µÇ¾î ÀÖ´Ù.
¡á ¾Ï½ÃÀû ÈùÆÃ : °¢ ±Û¸®ÇÁ¿¡ ÈùÆ® Á¤º¸¸¦ ³»ÀåÇÑ´Ù. Äڵ尡 ¾Æ´Ñ µ¥ÀÌÅ͸¸ ÀúÀåµÇ¹Ç·Î ÈξÀ ´õ ´Ü¼øÇϰí Å©±â°¡ ÀÛ´Ù. ÀÌ Á¤º¸´Â ÆùÆ®¸¦ ±×¸®´Â µå¶óÀ̹ö¿¡ ÀÇÇØ ÇØ¼®µÇ¾î ±Û¸®ÇÁ¿¡ Àû¿ëµÈ´Ù. Type1 ÆùÆ®°¡ ÀÌ ¹æ½ÄÀ¸·Î µÇ¾î ÀÖ´Ù.
¡á ÀÚµ¿ ÈùÆÃ : ±Û¸®ÇÁ¿¡ ¾î¶°ÇÑ ÈùÆ® Á¤º¸µµ Æ÷ÇÔµÇÁö ¾Ê´Â´Ù. ±Û¸®ÇÁ¸¦ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥ÀÌ ÃßÃøÀ» ÅëÇØ ÈùÆ®¸¦ »ý¼ºÇس»°í Àû¿ëÇÑ´Ù. »ó½ÄÀûÀÎ ¼öÁØ¿¡¼ ÈùÆÃÀ» ÇÏ´Â ¹æ½ÄÀÌ´Ù. ÆùÆ®´Â °¡º¿öÁöÁö¸¸ ´ë½Å ·£´õ·¯ÀÇ ºÎ´ãÀÌ Áõ°¡ÇÑ´Ù.
°¢ ¹æ½ÄÀº °¢ÀÚ Àå´ÜÁ¡ÀÌ ÀÖ´Ù.
|
¼Óµµ |
Å©±â |
ǰÁú |
Àϰü¼º |
¸í½ÃÀû |
´À¸®´Ù |
Å©´Ù |
°¡Àå ¿ì¼öÇÏ´Ù |
ÀϰüµÇ´Ù |
¾Ï½ÃÀû |
ºü¸£´Ù |
ÀÛ´Ù |
¿ì¼öÇÏ´Ù |
·£´õ·¯¿¡ Á¿ìµÊ |
ÀÚµ¿ |
·£´õ·¯¿¡ Á¿ìµÊ |
°¡Àå ÀÛ´Ù |
³·´Ù. |
·£´õ·¯¿¡ Á¿ìµÊ |
¸í½ÃÀû ÈùÆÃÀº ´À¸®Áö¸¸ ǰÁúÀÌ ¿ì¼öÇÏ°í ¾Ï½ÃÀû ÈùÆÃÀº ºü¸£Áö¸¸ ǰÁúÀÌ Á¶±Ý ¶³¾îÁø´Ù. ǰÁúÀ̳ª ¼Óµµ ¿Ü¿¡µµ Àϰü¼º ¿©ºÎµµ Áß¿äÇÑ Â÷ÀÌÁ¡ÀÌ´Ù. ¸í½ÃÀû ÈùÆÃÀº ÈùÆÃ ¾Ë°í¸®ÁòÀÌ ÆùÆ®¿¡ ³»ÀåµÇ¾î ÀÖÀ¸¹Ç·Î ¾îµð¿¡¼ Ãâ·ÂÇϳª Ç×»ó µ¿ÀÏÇÑ ¸ð¾çÀ¸·Î Ãâ·ÂµÈ´Ù. ±×·¯³ª ¾Ï½ÃÀû ÈùÆÃÀº ÈùÆ® Á¤º¸¸¦ ÇØ¼®ÇÏ¿© Àû¿ëÇÏ´Â ·£´õ·¯¿¡ µû¶ó ¸ð¾çÀÌ ´Þ¶óÁú ¼öµµ ÀÖ´Ù. ºñ·Ï ¹Ì¼¼ÇÑ Â÷À̰ÚÁö¸¸ ¶È°°Àº ¹®¼¸¦ À©µµ¿ìÁî¿¡¼ Ãâ·ÂÇßÀ» ¶§¿Í ¸ÅŲÅä½Ã¿¡¼ Ãâ·ÂÇßÀ» ¶§ °á°ú°¡ ´Þ¶óÁø´Ù¸é ÀÌ ¶Ç´Â ¹«½Ã¸øÇÒ ´ÜÁ¡À̶ó°í ÇÒ ¼ö ÀÖ´Ù.
¿î¿µÃ¼Á¦ÀÇ °í¼öÁØ Ãâ·Â ÇÔ¼ö³ª FreeType °°Àº Àú¼öÁØ ¶óÀ̺귯¸®³ª ¸ðµÎ ÈùÆ® Á¤º¸¸¦ ¾Ë¾Æ¼ »ç¿ëÇϵµ·Ï µÇ¾î ÀÖÀ¸¹Ç·Î ÈùÆÃ¿¡ ´ëÇØ Ưº°È÷ ½Å°æÀ» ¾µ ÇÊ¿ä´Â ¾ø´Ù. FreeTypeÀº Æ®·ç ŸÀÔ ¹ÙÀÌÆ® Äڵ忡 ´ëÇÑ ÀÎÅÍÇÁ¸®ÅͱîÁö ³»ÀåÇϰí ÀÖ¾î ¿ì¼öÇÏ°íµµ ÀϰüµÈ °á°ú¸¦ ¸¸µé¾î ³½´Ù. »Ó¸¸ ¾Æ´Ï¶ó ÈùÆ® Á¤º¸°¡ ¾ø´Â ÆùÆ®¸¦ À§ÇØ ÀÚµ¿ÈµÈ ¿ÀÅä ÈùÆ® ±â´É±îÁö Á¦°øµÈ´Ù.
ÈùÆÃÀº ±²ÀåÈ÷ º¹ÀâÇÏ°í ¾î·Á¿î ±â¼úÀÌÁö¸¸ ´ÙÇàÈ÷ ÈùÆÃ¿¡ ´ëÇØ¼´Â °³¹ßÀÚ°¡ ÀÌ·¡¶ó Àú·¡¶ó ÇÒ Çʿ䰡 °ÅÀÇ ¾ø´Â ¼ÀÀÌ´Ù. ´Ù¸¸ ¾ÆÁÖ Æ¯¼öÇÑ °æ¿ì¸¦ À§ÇØ FreeTypeÀº ±Û¸®ÇÁ¸¦ ·ÎµåÇÒ ¶§ FT_LOAD_NO_HINTING, FT_LOAD_NO_AUTOHINT µîÀÇ Ç÷¡±×·Î ÈùÆÃÀÇ Àû¿ë ¿©ºÎ³ª ¹æ½Ä¿¡ ´ëÇØ °³ÀÔÇÒ ¼ö ÀÖ´Â ÀåÄ¡¸¦ Á¦°øÇÑ´Ù. ÀÌ Ç÷¡±×µéµµ ³ª¸§´ë·Î ½Ç¿ëÀûÀ¸·Î ¾µ ¶§°¡ ÀÖ°ÚÁö¸¸ ¼ÖÁ÷È÷ ¿Ø¸¸Çؼ´Â ¾µ ÀÏÀÌ ¾ø´Ù.
Ä¿´×(Kerning)À̶õ ¿¬¼ÓµÇ´Â µÎ ±ÛÀÚÀÇ °£°ÝÀ» º¸±â ÁÁ°Ô Àç¹èÄ¡ÇÏ´Â ±â¼úÀÌ´Ù. Á¤»ç°¢ÇüÀÇ Çѱۿ¡¼´Â ÀÌ·± ±â¹ýÀÌ ±»ÀÌ ÇÊ¿äÄ¡ ¾Ê¾Æ ¾Õ ±ÛÀÚÀÇ Æø¸¸Å À̵¿ÇÑ ÈÄ ´ÙÀ½ ±ÛÀÚ¸¦ Ãâ·ÂÇϱ⸸ ÇÏ¸é µÈ´Ù. ±×·¯³ª ¸ð¾çÀÌ Á» ´õ ÀÚÀ¯ ºÐ¹æÇÑ ¾ËÆÄºª°ú ±âÈ£µéÀº ´Ü¼øÈ÷ Æø¸¸Å °£°ÝÀ» ¶ç¿ì±â¸¸ ÇØ¼´Â ¾î»öÇÑ ¸ð¾çÀÌ ³ª¿Â´Ù. ÀϹÝÀûÀÎ ¿öµå ÇÁ·Î¼¼¼µéÀº ¸ðµÎ Ä¿´×À» Áö¿øÇϹǷΠ¿öµå¸¦ ¿¾î¼ Ä¿´×ÀÌ ¾î¶² ±â¼úÀÎÁö üÇèÇØ º¸ÀÚ.
BRAVO¶ó´Â ¹®ÀÚ¿À» µÎ ¹ø Ãâ·ÂÇߴµ¥ À§ÂÊÀº Ä¿´×À» Àû¿ëÇÏÁö ¾Ê°í ´Ü¼øÈ÷ ±ÛÀÚÀÇ Æø¸¸Å ¶ç¿ö°¡¸ç ¹®ÀÚµéÀ» ÂïÀº °ÍÀÌ´Ù. B¿Í R »çÀÌÀÇ °£°ÝÀ̳ª R°ú AÀÇ °£°ÝÀº ´«¿¡ °Å½½¸®Áö ¾ÊÁö¸¸ A¿Í VÀÇ °£°ÝÀº ´Ù¸¥ ±ÛÀڵ鿡 ºñÇØ »ó´çÈ÷ ¹ú¾îÁøµíÇÑ ´À³¦ÀÌ µç´Ù. À°¾ÈÀ¸·Î Àß °üÂûÇØ º¸¸é AÀÇ ¹ß°¡¶ô°ú VÀÇ ¾î±ú ÁÂÇ¥°¡ °ÅÀÇ ÀÏÄ¡ÇØ ½ÉÇÏ°Ô ¸¹ÀÌ ¹ú¾îÁø °ÍÀº ¾Æ´Ï´Ù. ÇÏÁö¸¸ µÎ ±ÛÀÚÀÇ Á¿쿡 »ï°¢ÇüÀÇ ¿©¹éµéÀÌ ÇÕÃÄÁ®¼ ¹º°¡ ÇãÀüÇÑ °ø°£ÀÌ ´À²¸Áö´Â °ÍÀÌ´Ù.
A¿Í Vó·³ ¿Ü¾ç»ó ¹ú¾îÁ® º¸ÀÏ ¼ö ÀÖ´Â ±Û¸®ÇÁ Á¶ÇÕ¿¡ ´ëÇØ¼´Â ÀÏÁ¤ Á¤µµ °£°ÝÀ» ÁÙÀÏ Çʿ䰡 Àִµ¥ ÀÌ Á¤º¸¸¦ Ä¿´×À̶ó°í ÇÑ´Ù. ÀÚ¿¬½º·´°Ô Ãâ·ÂÇØµµ °á°ú°¡ ¸¸Á·½º·´Áö ¸øÇϱ⠶§¹®¿¡ ÀÎÀ§ÀûÀ¸·Î °£°ÝÀ» ´õ ÁÙ¿© ÃÖ´ëÇÑ º¸±â ÁÁ°Ô ¸¸µå´Â °ÍÀÌ´Ù. ¾Æ·¡ÂÊÀº Ä¿´×À» Àû¿ëÇÑ °ÍÀε¥ A¿Í V°¡ ½ÇÁ¦ ¹®ÀÚÆøº¸´Ù Á¶±Ý ´õ ÀÛ°Ô Æò°¡µÇ¾î °¡±õ°Ô ºÙ¾î ÀÖÀ¸¸ç ÀüüÀûÀ¸·Î ¹®ÀÚÀÇ °£°ÝµéÀÌ ±ÕÀÏÇÑ °Íó·³ º¸ÀδÙ. ¾ö¹ÐÇÏ°Ô µûÁöÀÚ¸é V°¡ AÀÇ ¿µ¿ªÀ» ħ¹üÇßÁö¸¸ ¾î·°Å³ª »ç¶÷ ´«¿¡´Â ÀÌ°Ô ´õ ÁÁ¾Æ º¸ÀδÙ. ¿öµå ÇÁ·Î¼¼¼µéÀº µðÆúÆ®·Î Ä¿´×À» Àû¿ëÇϵµ·Ï µÇ¾î ÀÖ´Ù.
Á» ´õ ¿¹»Û Ãâ·ÂÀ» À§ÇØ ÆäÀ̽º´Â Ä¿´× Á¤º¸¸¦ Æ÷ÇÔÇÏÁö¸¸ ¸ðµç ÆùÆ®°¡ ´Ù Ä¿´× Á¤º¸¸¦ Á¦°øÇÏ´Â °ÍÀº ¾Æ´Ï¹Ç·Î ÆäÀ̽º¿¡ Ä¿´× Á¤º¸°¡ ÀÖ´ÂÁö¸¦ ¸ÕÀú Á¡°ËÇØ¾ß ÇÑ´Ù. faceÀÇ Ç÷¡±×¸¦ Àоî FT_FACE_FLAG_KERNING ºñÆ®°¡ ¼³Á¤µÇ¾î ÀÖ´ÂÁö¸¦ È®ÀÎÇØ º¸¸é µÈ´Ù. ÀÌ Ç÷¡±×¸¦ È®ÀÎÇÏ´Â ¸ÅÅ©·Î°¡ Á¤ÀǵǾî ÀÖÀ¸¹Ç·Î ¸ÅÅ©·Î¸¸ È£ÃâÇØ º¸¸é Ä¿´×°ªÀÇ Á¸Àç ¿©ºÎ¸¦ ½±°Ô ÆÄ¾ÇÇÒ ¼ö ÀÖ´Ù.
#define FT_HAS_KERNING( face ) ( face->face_flags & FT_FACE_FLAG_KERNING )
Æ®·ç ŸÀÔÀÇ °æ¿ì Ä¿´×ÀÌ ÆäÀ̽º¿¡ Æ÷ÇԵǾî ÀÖÁö¸¸ Type1ÀÇ °æ¿ì´Â ÆäÀ̽º ÆÄÀϰú´Â º°µµÀÇ ÆÄÀÏ¿¡ Ä¿´× Á¤º¸°¡ ¹èÆ÷µÇ¹Ç·Î º°µµ·Î ÆÄÀÏÀ» ÀÐ¾î¼ ÆäÀ̽º¿¡ ÷ºÎÇØ¾ß ÇÑ´Ù. ´ÙÇàÈ÷ FreeType ¶óÀ̺귯¸®´Â Ä¿´× Á¤º¸ÀÇ À§Ä¡¿¡ »ó°ü¾øÀÌ ¿øÇÏ´Â µÎ ¹®ÀÚ¿¡ ´ëÇØ Ä¿´×°ªÀ» ±¸ÇÏ´Â ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù.
FT_EXPORT( FT_Error ) FT_Get_Kerning( FT_Face face, FT_UInt left_glyph, FT_UInt right_glyph, FT_UInt kern_mode, FT_Vector *akerning );
ÆäÀ̽º °´Ã¼¿Í ÁÂ¿ì µÎ ¹®ÀÚÀÇ À妽º¸¦ Àü´ÞÇÏ¸é µÎ ¹®ÀÚ »çÀÌÀÇ Ä¿´×°ªÀÌ ¸®ÅϵȴÙ. Ä¿´× ¸ðµå´Â Ä¿´×°ªÀ» ¾î¶² ½ÄÀ¸·Î ¸®ÅÏÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤Çϴµ¥ FT_KERNING_DEFAULT·Î ÁöÁ¤ÇÏ¸é ½ºÄÉÀϸµ°ú ÈùÆÃÀ» Àû¿ëÇÑ ÈÄ ¹Ý¿Ã¸²±îÁö ÇÑ Ä¿´×°ªÀÌ 26.6 Æ÷¸ËÀ¸·Î ¸®ÅϵȴÙ. ´ë°³ÀÇ °æ¿ì ½ºÄÉÀϸµ°ú ÈùÆÃÀ» ÇÑ ÈÄÀÇ Ä¿´×À» Àû¿ëÇϹǷΠÀÌ ¸ðµå·Î Ä¿´×°ªÀ» ÀÐÀ¸¸é ÃæºÐÇÏ´Ù. ±×·¯³ª ´Ù¸¥ ÀÌÀ¯·Î ½ºÄÉÀϸµ ÀÌÀüÀÇ Ä¿´×°ªÀ̳ª ÈùÆÃÀ» ÇϱâÀüÀÇ Ä¿´×°ªÀÌ ÇÊ¿äÇÏ¸é ´Ù¸¥ ¸ðµå¸¦ ÁöÁ¤ÇÏ¸é µÈ´Ù.
¸®ÅÏµÈ Ä¿´×°ªÀº ¾çÂÊ ¹®ÀÚ¸¦ ´õ °¡±õ°Ô ºÙÀÌ´Â ¿ªÇÒÀ» ÇϹǷΠ´ë°³ÀÇ °æ¿ì´Â À½¼öÀÏ °ÍÀÌ´Ù. ÀÌ °ªÀ» ÆæÀÇ ÇöÀç À§Ä¡¿¡¼ ´õÇϸ¸ ÇÏ¸é µÈ´Ù. À½¼ö¸¦ ´õÇßÀ¸¹Ç·Î Ææ À§Ä¡°¡ ¿ÞÂÊÀ¸·Î »ì¦Äô À̵¿ÇÏ¿© µÎ ¹®ÀÚÀÇ °£°ÝÀÌ Á¼ÇôÁø´Ù. ´ÙÀ½ ¿¹Á¦´Â ¹®ÀÚ¿À» µÎ ¹ø Ãâ·ÂÇÏµÇ Ä¿´× Àû¿ë ¿©ºÎ¸¦ ´Þ¸®Çß´Ù.
¿¹ Á¦ : Kerning |
void DrawGlyph(HDC hdc,int bx, int by, FT_Face face)
{
int x, y;
int Color;
int width, height;
width=face->glyph->bitmap.width;
height=face->glyph->bitmap.rows;
for (y=0;y<height;y++) {
for (x=0;x<width;x++) {
Color=255-face->glyph->bitmap.buffer[y*width+x];
if (Color != 255) {
SetPixelV(hdc,bx+face->glyph->bitmap_left+x,
by-face->glyph->bitmap_top+y,RGB(Color,Color,Color));
}
}
}
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
FT_Face face;
static TCHAR str[]=TEXT("AV T.Test");
int idx;
int penx,peny;
unsigned left=0,right=0;
FT_Vector kerning;
switch (iMessage) {
case WM_CREATE:
hWndMain=hWnd;
return 0;
case WM_PAINT:
hdc=BeginPaint(hWnd, &ps);
FT_New_Face(library,"c:\\windows\\fonts\\times.ttf",0,&face);
FT_Set_Char_Size(face, 128 * 64, 0,
GetDeviceCaps(hdc,LOGPIXELSX), GetDeviceCaps(hdc,LOGPIXELSY));
// Ä¿´× ¹ÌÀû¿ë
penx=0 * 64;
peny=150 * 64;
for (idx=0;idx<lstrlen(str);idx++) {
FT_Load_Char(face,str[idx],FT_LOAD_RENDER | FT_LOAD_NO_BITMAP);
DrawGlyph(hdc,(penx >> 6), (peny >> 6), face);
penx += face->glyph->advance.x;
peny += face->glyph->advance.y;
}
// Ä¿´× Àû¿ë
if (FT_HAS_KERNING(face)) {
penx=0 * 64;
peny=300 * 64;
for (idx=0;idx<lstrlen(str);idx++) {
right = FT_Get_Char_Index(face,str[idx]);
if (left != 0) {
FT_Get_Kerning(face,left,right,FT_KERNING_DEFAULT,&kerning);
penx += kerning.x;;
}
FT_Load_Glyph(face,right,FT_LOAD_DEFAULT | FT_LOAD_NO_BITMAP);
FT_Render_Glyph(face->glyph, FT_RENDER_MODE_NORMAL);
DrawGlyph(hdc,(penx >> 6), (peny >> 6), face);
penx += face->glyph->advance.x;
peny += face->glyph->advance.y;
left=right;
}
}
FT_Done_Face(face);
EndPaint(hWnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
´Ü¼øÇÑ ¹®ÀÚ¿ Ãâ·Â ÄÚµåÀÌµÇ Ä¿´×À» Àû¿ëÇÒ ¶§´Â ÁÂ¿ì ¹®ÀÚÀÇ À妽º¸¦ ÀúÀåÇØ µÎ¾ú´Ù°¡ Á¶»çµÈ Ä¿´×°ª¸¸Å ÆæÀÇ x ÁÂÇ¥¿¡ ´õÇÏ´Â Äڵ尡 Ãß°¡µÇ¾î ÀÖ´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.
Ä¿´× ¿©ºÎ¿¡ µû¶ó A¿Í VÀÇ °£°ÝÀÌ Æ²·ÁÁö¸ç T¿Í ¸¶Ä§Ç¥ÀÇ °£°Ýµµ ´Ù¸£´Ù. ¸¶Ä§Ç¥´Â ¾Õ ±ÛÀÚ ¹Ù·Î ´ÙÀ½¿¡ Âï¾î¾ß ÇÏÁö¸¸ T³ª F ó·³ ¿À¸¥ÂÊ ¾Æ·¡°¡ ¿òÇ« µé¾î°£ ±ÛÀÚÀÏ ¶§´Â Á¶±Ý ¿ÞÂÊ¿¡ Âï´Â °ÍÀÌ ´õ º¸±â¿¡ ÁÁ´Ù. Ä¿´×À» Àû¿ëÇϸé ÀüüÀûÀ¸·Î ¹®ÀÚ¿ÀÇ ±æÀ̰¡ ª¾ÆÁø´Ù.
Âü°í·Î GDIÀÇ TextOutÀ̳ª GDI+ÀÇ DrawStringÀº ÈùÆÃ°ú ¾ÈƼ ¾Ë¸®¾Æ½ÌÀº ÀÚµ¿À¸·Î ¼öÇàÇÏÁö¸¸ Ä¿´×Àº ó¸®ÇÏÁö ¾Ê´Â´Ù. °í¼öÁØÀÇ ÇÔ¼ö·Î´Â Ä¿´×À» ¹Ù·Î ó¸®ÇÒ ¼ö ¾øÀ¸¸ç Àú¼öÁØ ÇÔ¼ö¸¦ Á÷Á¢ È£ÃâÇϰųª ¾Æ´Ï¸é °³º° ¹®ÀÚ¸¦ Çϳª¾¿ µû·Î Ãâ·ÂÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ¿î¿µÃ¼Á¦ ¼öÁØ¿¡¼´Â Ä¿´×ÀÌ ÇÊ¿äÇÑ ¹®ÀÚµéÀÇ ¸ñ·ÏÀ» ±¸ÇØÁÖ´Â Á¤µµÀÇ ¼ºñ½º(GetKerningPairs)¸¸ Á¦°øÇÑ´Ù.
ÀÌ»óÀ¸·Î FreeType ¶óÀ̺귯¸®¿¡ ´ëÇÑ °Á¸¦ ¸¶Ä£´Ù. ªÀº ½Ã°£¿¡ °æÈ²¾øÀÌ ¾´ °ÁÂÀÌÁö¸¸ FreeTypeÀÇ ÁÖ¿ä ±â´ÉÀº °ÅÀÇ ´Ù ¼Ò°³ÇÑ °Í °°¾Æ ³ª¸§´ë·Î ¸¸Á·½º·´´Ù. ¹º°¡ »õ·Î¿î °ÍÀ» °øºÎÇÑ´Ù´Â °ÍÀº ¾ðÁ¦³ª Áñ°Å¿î ÀÏÀÌÁö¸¸ ½ÀµæÇÑ Áö½ÄÀ» ±Û·Î Á¤¸®ÇÏ´Â °ÍÀº °áÄÚ ½±Áö°¡ ¾Ê´Ù. Ç×»ó ½Ã°£ÀÌ ÃæºÐÄ¡ ¾Ê´Ù´Â Á¡ÀÌ ¾ÈŸ±î¿ï µû¸§ÀÌ´Ù.