3-2-3.À̹ÌÁö URL

ĵ¹ö½º¿¡ ±×·ÁÁø ±×¸²Àº ÀÌÁø µ¥ÀÌÅÍÀÌ´Ù. ÀÌÁø°ªÀº Å©±â´Â ÀÛÁö¸¸ ÀúÀåÀ̳ª Àü´ÞÀÌ ¾î·Æ´Ù. ±×·¡¼­ ¹®ÀÚ¿­ ÇüÅ·ΠµðÄÚµùÇÏ¿© º¯È¯ÇÒ ÇÊ¿ä°¡ Àִµ¥ ´ÙÀ½ ¸Þ¼­µå·Î ÀÌ º¯È¯À» ¼öÇàÇÑ´Ù. º¯È¯ ´ë»óÀº ĵ¹ö½º ÀüüÀÇ À̹ÌÁöÀ̹ǷΠÄÁÅؽºÆ®ÀÇ ¸Þ¼­µå°¡ ¾Æ´Ï¶ó ĵ¹ö½ºÀÇ ¸Þ¼­µåÀÌ´Ù.

 

toDataURL(type, para)

 

typeÀº ÀÎÄÚµù ¹æ¹ýÀ» ÁöÁ¤Çϴµ¥ »ý·«½Ã image/png°¡ Àû¿ëµÈ´Ù. image/jpegÀÎ °æ¿ì´Â µÎ¹ø° Àμö·Î 0.0 ~ 1.0 »çÀÌÀÇ ¾ÐÃà Ç°ÁúÀ» ÁöÁ¤ÇÑ´Ù. ĵ¹ö½ºÀÇ À̹ÌÁö´Â »çÁøÀÌ ¾Æ´Ï¶ó ±×¸²À̹ǷΠºñ¼Õ½Ç Æ÷¸ËÀÎ PNG¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÇÕ¸®ÀûÀÌ´Ù. À̹ÌÁö´Â Base64 ¾Ë°í¸®ÁòÀ¸·Î ÀÎÄÚµùµÇ¸ç ÇüÅ´ ´ÙÀ½°ú °°´Ù. µðÄÚµù ¹®ÀÚ¿­¾È¿¡ À̹ÌÁö°¡ µé¾î ÀÖ´Ù.

 

data:MIMEŸÀÔ;base64, µðÄÚµù¹®ÀÚ¿­

 

À̹ÌÁö¸¦ ¹®ÀÚ¿­ ÇüÅ·Πº¯È¯ÇÏ¸é ¿©·¯ °¡Áö ¿ëµµ·Î È°¿ëÇÒ ¼ö ÀÖ´Ù. ¹®ÀÚ¿­À̹ǷΠµ¥ÀÌÅͺ£À̽º¿¡ ÀúÀåÇÒ ¼öµµ ÀÖ°í URL ÇüÅÂÀ̹ǷΠ´Ù¸¥ â¿¡ ¿­ ¼öµµ ÀÖ´Ù. °¡Àå °£ÆíÇÑ ¹æ¹ýÀº img ű×ÀÇ src ¼Ó¼º¿¡ ÀÌ ¹®ÀÚ¿­À» ´ëÀÔÇÏ¿© Ãâ·ÂÇÏ´Â °ÍÀÌ´Ù. ĵ¹ö½º¸¦ ¹®ÀÚ¿­·Î º¯È¯ÇÑ ÈÄ ´Ù½Ã À̹ÌÁö·Î Ãâ·ÂÇØ º¸ÀÚ.

 

dataurl.html

<!DOCTYPE html>

<head>

     <meta charset="utf-8">

     <title>dataurl</title>

     <style>

         canvas {border:5px solid magenta;}

     </style>

</head>

<body>

     <canvas id="canvas" width="9" height="9">

         ÀÌ ºê¶ó¿ìÀú´Â ĵ¹ö½º¸¦ Áö¿øÇÏÁö ¾Ê½À´Ï´Ù.

     </canvas>

     <img id="image"/>

     <script>

         var canvas;

         var ctx;

         window.onload = function() {

              canvas = document.getElementById("canvas");

              if (canvas == null || canvas.getContext == null) return;

              ctx = canvas.getContext("2d");

              draw();

         }

        

         function draw() {

              ctx.fillRect(2,2,5,5);

              var data = canvas.toDataURL();

              alert(data);

 

              var image = document.getElementById("image");

              image.src = data;

         }

     </script>

</body>

</html>

 

9 * 9 Å©±âÀÇ ¾ÆÁÖ ÀÛÀº ĵ¹ö½º¿¡ »ç°¢Çü Çϳª¸¦ ±×·È´Ù. ĵ¹ö½º°¡ Å©¸é ÀÎÄÚµùÇÑ ¹®ÀÚ¿­ÀÌ ¾î¸¶ ¾î¸¶ÇÏ°Ô ±æ¾îÁö¹Ç·Î ÃʼÒÇü ĵ¹ö½º¿¡ ±×·È´Ù. ÀÌ Äµ¹ö½ºÀÇ À̹ÌÁö¸¦ ¹®ÀÚ¿­·Î ÀÎÄÚµùÇÏ¿© ´ëÈ­»óÀÚ·Î Ãâ·ÂÇß´Ù.

ÀÌ ¹®ÀÚ¿­ ¾È¿¡ »ç°¢Çü À̹ÌÁö°¡ µé¾î ÀÖ´Ù. °ú¿¬ ±×·±Áö À̹ÌÁö ¿¤¸®¸ÕÆ®ÀÇ src ¼Ó¼º¿¡ ´Ù½Ã ´ëÀÔÇÏ¿© ÀçÃâ·ÂÇß´Ù. È®ÀÎ ¹öÆ°À» ´©¸£¸é ĵ¹ö½º ¿·¿¡ Á¶±×¸¶ÇÑ À̹ÌÁö°¡ ³ªÅ¸³­´Ù.

À̹ÌÁö ¿¤¸®¸ÕÆ® »Ó¸¸ ¾Æ´Ï¶ó CSSÀÇ ¹è°æ À̹ÌÁö, ¸ñ·ÏÀÇ ºæ¸´ µîµµ ÀÎÄÚµùµÈ ¹®ÀÚ¿­·ÎºÎÅÍ À̹ÌÁö¸¦ ÀνÄÇÑ´Ù. À̹ÌÁö ÆÄÀÏÀ» ÁغñÇÏÁö ¾Ê´õ¶óµµ ¿ÀÇÁ½ºÅ©¸° ĵ¹ö½º¿¡¼­ ¹è°æ À̹ÌÁö³ª ºæ¸´ À̹ÌÁö¸¦ ¸¸µé¾î »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. window.open ¸Þ¼­µå·Î ĵ¹ö½ºÀÇ ³»¿ëÀ» ´Ù¸¥ âÀ¸·Î ¿­¾î È®ÀÎÇØ º¼ ¼öµµ ÀÖ´Ù.

 

canvastoimage.html

<!DOCTYPE html>

<head>

     <meta charset="utf-8">

     <title>canvastoimage</title>

     <style>

         canvas {border:5px solid magenta;}

     </style>

</head>

<body>

     <form>

         <input type="button" id="capture" value="Capture"/>

     </form>

     <canvas id="canvas" width="400" height="200">

         ÀÌ ºê¶ó¿ìÀú´Â ĵ¹ö½º¸¦ Áö¿øÇÏÁö ¾Ê½À´Ï´Ù.

     </canvas>

     <script>

         var canvas;

         var ctx;

         window.onload = function() {

              canvas = document.getElementById("canvas");

              if (canvas == null || canvas.getContext == null) return;

              ctx = canvas.getContext("2d");

              draw();

         }

        

         function draw() {

              var brush = ctx.createLinearGradient(0, 0, 0, canvas.height);

              brush.addColorStop(0, "yellow");

              brush.addColorStop(1, "red");

              ctx.fillStyle = brush;

              ctx.fillRect(0, 0, canvas.width, canvas.height);

             

              ctx.beginPath();

              ctx.arc(200,100,80,0,2*Math.PI, true);

              var brush = ctx.createRadialGradient(200,100,0,200,100,80);

              brush.addColorStop(0, "white");

              brush.addColorStop(1, "gray");

              ctx.fillStyle = brush;

              ctx.fill();

         }

        

         var capture = document.getElementById("capture");

         capture.addEventListener("click", function(e) {

              window.open(canvas.toDataURL(), "Capture",

              "width=" + canvas.width +",height="+canvas.height);

         });

     </script>

</body>

</html>

 

±×·²µíÇÑ ±×·¡µð¾ðÆ® À̹ÌÁö¸¦ ±×·È´Ù. ĵ¹ö½º´Â À̹ÌÁö°¡ ¾Æ´Ï¹Ç·Î ÀÌ ÀÚü·Î´Â ÆÄÀÏ·Î ÀúÀåÇÒ ¼ö ¾ø´Ù. »õ·Î¿î âÀ» ¿­¾î ĵ¹ö½º¸¦ À̹ÌÁö·Î Ç¥½ÃÇÑ´Ù.

ÀÌ·¸°Ô µÇ¸é â¿¡ Ç¥½ÃµÈ À̹ÌÁö¸¦ ¸¶¿ì½º ¿À¸¥ÂÊ ¹öÆ°À» ´­·¯ ´Ù¸¥ À̸§À» ÁÖ¾î ÆÄÀÏ ÇüÅ·ΠÀúÀåÇÒ ¼öµµ ÀÖ´Ù.