Win32ÀÇ GDI API·Î ±×·¯µ¥À̼ÇÀ» ¾î¶»°Ô ±×¸®¸é µÉ±î¿ä? ƯÈ÷ 1990³â´ë Áß¹ÝÀÇ À©µµ¿ì 3.x ½ÃÀý¿¡´Â ¼³Ä¡ ÇÁ·Î±×·¥ÀÌ ÆĶû-°ËÁ¤ÀÇ ±×·¯µ¥ÀÌ¼Ç È¸éÀ¸·Î ³ªÅ¸³ª´Â °Ô À¯ÇàÀ» Ÿ´ø ½ÃÀýµµ ÀÖ¾úÁÒ.
±×·±µ¥ ÀÌ°ÍÀÌ ±âº» API ÇÔ¼ö¸¸À¸·Î´Â ½±Áö ¾Ê½À´Ï´Ù. ¿ø·¡ À©µµ¿ì GDI´Â ¸Å¿ì Á¤ÀûÀÌ°í Ãß»óÀûÀ¸·Î ¼³°èµÇ¾ú½À´Ï´Ù. ¼± Çϳª, »ö±ò Çϳªµµ PEN, BRUSH °°Àº °èÃþÀ» °ÅÃļ Ç¥ÇöµÇÁÒ. ´öºÐ¿¡ GDI´Â À©µµ¿ì ÃÊâ±â ½ÃÀýºÎÅÍ Áö±Ý±îÁö °ÅÀÇ º¯ÇÑ °Ô ¾ø´Â ÀÏ°üµÈ API¸¦ Á¦°øÇÔ°ú µ¿½Ã¿¡ öÀúÇÑ ÀåÄ¡ µ¶¸³¼ºÀ» ½ÇÇöÇßÁö¸¸, ±× ´ë½Å ºñµð¿À ȸéÀ̶ó´Â ¸Åü¿¡ ƯȵǾî ÀÖ´Â ¿¡´Ï¸ÞÀ̼ÇÀ̶óµç°¡ »ö±òÀÌ Çö¶õÇÏ°Ô ¹Ù²î´Â ±×·¯µ¥À̼ÇÀ» Ç¥ÇöÇÏ´Â µ¥¿¡´Â »ó´ëÀûÀ¸·Î ÇѰ踦 µå·¯³À´Ï´Ù.
±×·¯µ¥À̼ÇÀÇ °æ¿ì, Áß°£»ö¿¡ ´ëÇؼ ÀÏÀÏÀÌ GDI ¿ÀºêÁ§Æ®¸¦ ¸¸µé¾ú´Ù°¡ ¼Ò¸êÀ» ÇØ¾ß Çϱ⠶§¹®¿¡ ºñÈ¿À²ÀûÀÔ´Ï´Ù. µð´õ¸µÀÌ ÇÊ¿äÇÑ ºñµð¿À Ä«µå³ª ÇÁ¸°ÅÍ µî¿¡¼´Â ÀÌ·± Ãß»óÈ °èÃþÀÌ ¾µ¸ð°¡ ÀÖÁö¸¸ ¿äÁòó·³ °í¼º´É ±×·¡ÇÈ È¯°æ¿¡¼´Â ÀÌ°ÍÀÌ °ÅÃßÀ彺·´°Ô¸¸ ÇÏ°ÚÁÒ. ¶ÇÇÑ ¿äÁò ±»ÀÌ °ÔÀÓÀÌ ¾Æ´Ï´õ¶óµµ °ÅÀÇ Çʼö¶ó ÇÒ ¼ö ÀÖ´Â ºñÆ®¸ÊÀ» ´Ù·ç´Â ±âº» API ÀÚüµµ 32ºñÆ® À©µµ¿ì·Î ¿Í¼¾ß ¿î¿µÃ¼Á¦ APIÀÇ ÀϺηΠÁ¤½Ä ÆíÀÔµÈ °ÍÀÔ´Ï´Ù.
ÀÌ ÇÁ·Î±×·¥¿¡¼´Â ¹«·Á ´Ù¼¸ °¡Áö ¹æ¹ýÀ¸·Î ±×·¯µ¥À̼ÇÀ» ±×·Á º¸¾Ò½À´Ï´Ù. ¹°·Ð ÀÌ·± ¿ëµµ·Î´Â GDI+¶ó´Â »õ·Î¿î API°¡ µµÀÔµÈ °Íµµ ÀÖÁö¸¸, ÀÌ ÇÁ·Î±×·¥¿¡¼´Â ÀÏ´Ü Àç·¡½Ä GDI¸¸ »ý°¢Çϱâ·Î Çß½À´Ï´Ù.
ÄÄÇ»ÅÍ°¡ ÇÏÀÌÄ÷¯ ÀÌ»óÀ» Ç¥ÇöÇÒ ¼ö Àִ ȯ°æÀ̶ó¸é À§ÀÇ ´Ù¼¸ ¹æ½Ä Áß ¾î´À °ÍÀ» »ç¿ëÇÏ´õ¶óµµ ¾Æ·¡ ±×¸²¿¡¼ A¿Í µ¿ÀÏÇÑ °á°ú°¡ ³ª¿É´Ï´Ù. ÇÏÁö¸¸ 256»ö ÀÌÇÏÀÇ È¯°æ¿¡¼´Â 1°ú 2¹ø ¹æ½ÄÀº Có·³ ÈäÇÏ°Ô Ãâ·ÂµÇ°í, 3~5¹ø ¹æ½ÄÀº ±×³ª¸¶ Bó·³ µð´õ¸µÀÌ¶óµµ µÇ¾î¼ ³ª¿É´Ï´Ù. ¿À·ÎÁö solid color(¼ø»ö)¸¸ Áö¿øÇÏ´Â Æ溸´Ù´Â, ºê·¯½Ã°¡ ±×·¡µµ »ö±ò ó¸® ¸é¿¡¼ ´õ ¿Ï¼ºµµ°¡ ³ôÀº ¹æ½ÄÀÓÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.
÷ºÎÇÏ´Â ÇÁ·Î±×·¥À» ½ÇÇàÇؼ A~E Å°¸¦ ´©¸£¸é ±×·¯µ¥ÀÌ¼Ç ±×¸®´Â ¹æ½ÄÀ» ¹Ù²ã °¡¸ç È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ ¼ýÀÚ 1~3À» ´©¸£¸é »ö±òÀ» ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù.
16Ä÷¯¿¡¼¾ß »ö±ò ¼ö°¡ ¿ö³« ºÎÁ·ÇÏ´Ï À§ÀÇ ±×¸²¿¡¼ B ¾Æ´Ï¸é C¹Û¿¡ ´õ ´äÀÌ ¾øÁö¸¸, 256Ä÷¯ ȯ°æ¿¡¼´Â ÆÈ·¹Æ®¸¦ ¹Ù²ã¼ ±×·¯µ¥À̼ÇÀÌ ¾Æ½¬¿î ´ë·Î Aó·³ ³ª¿À°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÆÈ·¹Æ®´Â ¿À·ÎÁö 256Ä÷¯¶ó´Â °úµµ±â ºñµð¿À ȯ°æ¿¡¼¸¸ Á¸ÀçÇÑ ¸Å¿ì À¯º°³ª°í ƯÀÌÇÑ °³³äÀÔ´Ï´Ù. ½Ã½ºÅÛ Àüü°¡ °øÀ¯ÇÏ´Â ÆÈ·¹Æ®¶ó´Â ÀÚ¿ø¿¡¼ ÀÀ¿ë ÇÁ·Î±×·¥º°·Î ¸¶À½´ë·Î »ç¿ë °¡´ÉÇÑ »ö±òÀ» Á¦¾îÇÏ´Â ¸ÞÄ¿´ÏÁòÀÎ ¼ÀÀÌÁÒ. ÆÈ·¹Æ®¸¦ »ç¿ëÇϱâ À§Çؼ´Â ´ÙÀ½À» ¿°µÎ¿¡ µÎ¸é µË´Ï´Ù.
ÇÁ·Î±×·¥¿¡¼ »çÀ̶簳¸¦ ´©¸£¸é ÆÈ·¹Æ®ÀÇ »ç¿ë ¿©ºÎ¸¦ ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù. ÆÈ·¹Æ®¸¦ »ç¿ëÇÏ°Ô µÇ¸é, GradientFill() ¹æ½ÄÀ» Á¦¿ÜÇÑ ´Ù¸¥ ¸ðµç ¹æ½Ä¿¡¼ ±×·¯µ¥À̼ÇÀÌ "A. ¿ø»ö"À¸·Î ¿¹»Ú°Ô Ãâ·ÂµË´Ï´Ù. ÀÌ ÇÁ·Î±×·¥À» ¿©·¯ °³ ½ÇÇàÇؼ Á¦°¢±â ´Ù¸¥ »ö»óÀ¸·Î ÆÈ·¹Æ®¸¦ »ç¿ëÇÏ°Ô ÇØ º¸¸é Àç¹ÌÀÖ´Â ±¤°æÀÌ ÆîÃÄÁú °ÍÀÔ´Ï´Ù. ³»°¡ È°¼ºÈÇØ ÀÖÀ» ¶§´Â A ¸ðµåÀÌÁö¸¸, ÆÈ·¹Æ®¸¦ ³ª¸¸Å »ç¿ëÇÏ´Â ´Ù¸¥ ÀνºÅϽº·Î Æ÷Ä¿½º¸¦ »©¾Ñ±â°í ³ª¸é ±×·¯µ¥À̼ÇÀÇ »ö±òÀÌ µµ·Î C ¸ðµå·Î µ¹¾Æ°¡°Ô µË´Ï´Ù. Â÷¶ó¸® ÆÈ·¹Æ®¸¦ »ç¿ëÇÏÁö ¾Ê°í ¾ÖÃÊ¿¡ ½Ã½ºÅÛ Ç¥ÁØ Ä÷¯¸¸À¸·Î µð´õ¸µÀ» ÇÏ´Â B ¸ðµå¸¸ÀÌ ¾Æ¹« ¿µÇâµµ ¹ÞÁö ¾Ê½À´Ï´Ù.
¾Æ·¡ ±×¸²¿¡¼ Æ÷Ä¿½º¸¦ ÆĶõ»ö ÀνºÅϽº·Î ¿Å±â°í ³ª¸é, »¡°£»öÀÌ Áö±ÝÀÇ ÆĶõ»öó·³ ¿ïÅüºÒÅüÇÏ°Ô ¹Ù²î°ÚÁÒ. ÃÊ·Ï»öÀº Æ÷Ä¿½º¸¦ ¾òµç ÀÒµç ´Þ¶óÁö´Â °Ô ¾ø½À´Ï´Ù. ¿ì¸®°¡ ÁöÁ¤ÇØ ÁØ ÆÈ·¹Æ® Ä÷¯¸¸ ÀÌ¿ëÇؼ ¶È¶ÈÇÏ°Ô A¿Í B »çÀ̸¸À» ¿À°í°¡°Ô µð´õ¸µÀ» ½ÃÅ°´Â ±â´ÉÀº ¾ø½À´Ï´Ù. ³» ÇÁ·Î±×·¥ÀÌ È°¼ºÈÀÏ ¶§¿Í ºñÈ°¼ºÀÏ ¶§ÀÇ È¸é Ãâ·Â ·ÎÁ÷À» ¿ÏÀüÈ÷ µû·Î ºÐ¸®ÇÏÁö ¾Ê´Â ÀÌ»ó, A¿Í C »çÀÌ, ¾Æ´Ï¸é B ÀÌ·¸°Ô µü °¥¶óÁö´Â ±¸µµÀÎ °Í °°½À´Ï´Ù.
GradientFill()Àº ÆÈ·¹Æ®ÀÇ ¿µÇâÀ» ¹ÞÁö ¾Ê´Â´Ù´Â °Íµµ Èï¹Ì·Î¿î Á¡ÀÔ´Ï´Ù. ¿î¿µÃ¼Á¦¿Í ÇÔ²² Á¦°øÇÏ´Â APIÀ̱â´Â ÇÏÁö¸¸ GDI ÀÚü¿Í´Â Ãâ½ÅÀÌ ´Ù¸£±â ¶§¹®¿¡ ±×·± °ÍÀÌ°ÚÁÒ?
¿äÁòÀº ÃÖÈÄÀÇ º¸·ç¶ó ¿©°ÜÁö´ø °ÔÀÓÁ¶Â÷µµ 256Ä÷¯¸¦ »ç¿ëÇÏÁö ¾Ê°í, µð½ºÇ÷¹ÀÌ ¼³Á¤¿¡µµ ÇÏÀÌÄ÷¯ ÀÌÇÏ´Â ¶ßÁöµµ ¾Ê´Â ¼¼»óÀÌ µÆ½À´Ï´Ù. Áö±ÝÀº ±×·¯µ¥ÀÌ¼Ç Á¤µµ´Â Àϵµ ¾Æ´Ñ °£´ÜÇÑ °úÁ¤ÀÌ µÆÁö¸¸, À̸¦ À©µµ¿ì ¿î¿µÃ¼Á¦¿¡¼ ¸·»ó ±¸ÇöÇÏ´Ù º¸¸é, ¾î´À Á¤µµ±îÁö ȣȯ¼ºÀÌ º¸ÀåµÇ´Â API¸¦ ½á¼ ¾î´À Á¤µµÀÇ ¿Ï¼ºµµ(256»ö ȯ°æ¿¡¼ µð´õ¸µÀ̳ª ÆÈ·¹Æ®±îÁö ´Ù °í·ÁÇÒÁö °°Àº)·Î ¸¸µéÁö°¡ °í¹Î°Å¸®·Î ³²´Â´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.
¿î¿µÃ¼Á¦µµ, ºñµð¿À Ä«µåµµ ÇÏ·ç¾Æħ¿¡ Áö±Ý°ú °°Àº ´«ºÎ½Å ¼º´ÉÀ¸·Î ¹ßÀüÇÑ °ÍÀÌ ¾Æ´ÏÁö¿ä. ´Ù °úµµ±â¸¦ °ÅÃÆ°í °ú°Å ¾øÀÌ´Â ÇöÀç°¡ ÀÖÀ» ¼ö ¾ø±â¿¡ ÆÈ·¹Æ® °°Àº ¡®°ú°Å À¯¹°¡¯µµ ³²¾Æ ÀÖ´Â °ÍÀÔ´Ï´Ù.