Canvas API
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015ë 7ì.
Canvas APIë JavaScriptì HTML <canvas> ì리먼í¸ë¥¼ íµí´ ê·¸ëí½ì 그리기ìí ìë¨ì ì ê³µí©ëë¤. 무ìë³´ë¤ë ì ëë©ì´ì
, ê²ì ê·¸ëí½, ë°ì´í° ìê°í, ì¬ì§ ì¡°ì ë° ì¤ìê° ë¹ëì¤ ì²ë¦¬ë¥¼ ìí´ ì¬ì©ë©ëë¤.
Canvas APIë ì£¼ë¡ 2D ê·¸ëí½ì ì¤ì ì ëê³ ììµëë¤. WebGL API ëí <canvas> ì리먼í¸ë¥¼ ì¬ì©íë©°, íëì¨ì´ ê°ì 2D ë° 3D ê·¸ëí½ì 그립ëë¤.
기본 ìì
canvasì ì´ë¡ì ì¬ê°íì 그리ë ê°ë¨í ììì ëë¤.
HTML
<canvas id="canvas"></canvas>
JavaScript
Document.getElementById() ë©ìëë HTML <canvas> ì리먼í¸ì ëí 참조를 ì»ìµëë¤. ê·¸ ë¤ì, HTMLCanvasElement.getContext() ë©ìëë ì리먼í¸ì 컨í
ì¤í¸(ë ëë§ë 그리기ì ëì)를 ì»ìµëë¤.
ì¤ì 그리기ë CanvasRenderingContext2D ì¸í°íì´ì¤ë¥¼ ì¬ì©í´ ìíë©ëë¤. fillStyle íë¡í¼í°ë ì¬ê°íì ì´ë¡ìì¼ë¡ ë§ëëë¤. fillRect() ë©ìëë ì¢ì¸¡ ìë¨ ì½ë를 (10, 10) ìì¹ì ëì¼ë©°, ëë¹ë¥¼ 150, ëì´ë¥¼ 100ì¼ë¡ ì§ì í©ëë¤.
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.fillStyle = "green";
ctx.fillRect(10, 10, 150, 100);
ê²°ê³¼
ë í¼ë°ì¤
HTMLCanvasElementCanvasRenderingContext2DCanvasGradientCanvasImageSourceCanvasPatternImageBitmapImageDataRenderingContextTextMetricsOffscreenCanvasPath2DImageBitmapRenderingContext
ì°¸ê³ :
ë
¸í¸: WebGLRenderingContextì ê´ë ¨ë ì¸í°íì´ì¤ë WebGL íìì 참조ëì´ììµëë¤.
CanvasCaptureMediaStreamì ê´ë ¨ë ì¸í°íì´ì¤ì
ëë¤.
ê°ì´ë ë° íí 리ì¼
- Canvas íí 리ì¼
-
Canvas APIì 기본ì ì¸ ì¬ì©ê³¼ ê³ ê¸ ê¸°ë¥ ëª¨ë를 ë¤ë£¨ë ì´í´í기 ì¬ì´ íí 리ì¼.
- HTML5 Canvas ê¹ì´ ì´í´ë³´ê¸°
-
Canvas API ë° WebGLì ì¤ìµ, ìì¸í ìê°.
- Canvas í¸ëë¶
-
Canvas APIì ëí ì ì©í ë í¼ë°ì¤.
- ë°ëª¨: A basic ray-caster
-
Canvas를 ì¬ì©í ray-tracing ì ëë©ì´ì ë°ëª¨.
- Canvas를 ì¬ì©íì¬ ë¹ëì¤ ì¡°ì
-
<video>ì<canvas>를 ì¡°í©íì¬ ì¤ìê°ì¼ë¡ ë¹ëì¤ ë°ì´í°ë¥¼ ì¡°ì.
ë¼ì´ë¸ë¬ë¦¬
Canvas APIë êµì¥í ê°ë ¥íì§ë§, ì¬ì©íë ê²ì´ íì ê°ë¨íì§ ììµëë¤. ìëì ëì´ë ë¼ì´ë¸ë¬ë¦¬ë¤ì ìºë²ì¤ ê¸°ë° íë¡ì í¸ë¥¼ ë ë¹ ë¥´ê³ ë ì½ê² ìì±í ì ìê² í´ì¤ëë¤.
- EaselJSë ê²ì, ìì± ìì ë° ê¸°í ê³ ëì ê·¸ëí½ ê²½íì ì½ê² ìì±í ì ìê² í´ì£¼ë ì¤íìì¤ ìºë²ì¤ ë¼ì´ë¸ë¬ë¦¬ì ëë¤.
- Fabric.jsë SVG íì± ê¸°ë¥ì ê°ì¶ ì¤íìì¤ ìºë²ì¤ ë¼ì´ë¸ë¬ë¦¬ì ëë¤.
- heatmap.jsë ìºë²ì¤ ê¸°ë° ë°ì´í° ì´ì§ë를 ìì±í기ìí ì¤íìì¤ ë¼ì´ë¸ë¬ë¦¬ì ëë¤.
- JavaScript InfoVis Toolkitì ì¸í°ë í°ë¸í ë°ì´í° ìê°í를 ìì±í©ëë¤.
- Konva.jsë ë°ì¤í¬í ë° ëª¨ë°ì¼ ì í리ì¼ì´ì ì ìí 2D ìºë²ì¤ ë¼ì´ë¸ë¬ë¦¬ì ëë¤.
- p5.jsë ìì ê°, ëìì´ë, êµì¡ì ë° ì 문ì를 ìí ìºë²ì¤ 그리기 기ë¥ì 모ë ì¸í¸ë¥¼ í¬í¨íê³ ììµëë¤.
- Paper.jsë HTML5 Canvas ììì ì¤íëë ì¤íìì¤ ë²¡í° ê·¸ëí½ ì¤í¬ë¦½í íë ììí¬ì ëë¤.
- Phaserë Canvas ë° WebGL 기ë°ì ë¸ë¼ì°ì ê²ìì ìí ë¹ ë¥´ê³ , ìì ë¡ê³ , ì¬ë¯¸ìë ì¤íìì¤ íë ììí¬ì ëë¤.
- Processing.jsë Processing ìê°í ì¸ì´ì í¬í¸ì ëë¤.
- Pts.jsë canvas ë° SVG를 ì¬ì©í ì°½ìì ì¸ ì½ë© ë° ìê°í를 ìí ë¼ì´ë¸ë¬ë¦¬ì ëë¤.
- Rekapië Canvas를 ìí ì ëë©ì´ì í¤ íë ì APIì ëë¤.
- Scrawl-canvasë 2D ìºë²ì¤ ì리먼í¸ë¥¼ ìì±íê³ ì¡°ìí기ìí ì¤íìì¤ JavaScript ë¼ì´ë¸ë¬ë¦¬ì ëë¤.
- ZIM íë ììí¬ë canvasììì ì°½ìì ì¸ ì½ë©ì ìí í¸ìì±, ì»´í¬ëí¸ ë° ì»¨í¸ë¡¤ì ì ê³µíë íë ììí¬ì ëë¤. ì ê·¼ì± ë° ë¤ì±ë¡ì´ íí 리ì¼ì í¬í¨í©ëë¤.
ì°¸ê³ : ë ¸í¸: WebGLì ì¬ì©íë 2D ë° 3D를 ìí WebGL API를 íì¸íì¸ì.
ëª ì¸
| Specification |
|---|
| HTML > # the-canvas-element > |
ë¸ë¼ì°ì í¸íì±
Mozilla ì í리ì¼ì´ì
ì Gecko 1.8(Firefox 1.5)ì ììì¼ë¡ <canvas>ì ëí ì§ìì ë°ììµëë¤. OS X Dashboard ë° Safari를 ìí´ Appleì´ ìê°í ê²ì´ ìºë²ì¤ ì리먼í¸ì 기ìì
ëë¤. Internet Explorerë 9ë²ì ë¶í° <canvas>를 ì§ìíë©°, ì´ì ë²ì ì IEììë Googleì Explorer Canvas íë¡ì í¸ì ì¤í¬ë¦½í¸ë¥¼ ì¶ê°íì¬ <canvas>ì ëí ì§ìì í¨ê³¼ì ì¼ë¡ ì¶ê°í ì ììµëë¤. Google Chrome ë° Opera 9 ëí <canvas>를 ì§ìí©ëë¤.