U E D R , A S I H C RSS

html5/canvas


1. บ”๋ฒ„Šค?

  • ธ๋ž˜”ฝ„ žœ ๋กญฒŒ ธ๋ฆด ˆ˜ žˆ๋Š” ˜—ญ.
  •   •๋œ„“™€ ๋†’ด.
  • IE๋ฅผ  œ™ธ•œ ๋ชจ๋“  ฃผš” ๋ธŒ๋šฐ €(?)—„œ ‚ฌšฉ•  ˆ˜ žˆ๋Š” ธฐ๋Šฅ. IE—„œ ‚ฌšฉ•˜  ‹œผ๋ฉด Explorer Canvas, uuCanfas.js ๋“ฑ˜ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ‚ฌšฉ•˜—ฌ  œ•œ  ธฐ๋Šฅœผ๋กœ ‚ฌšฉ•  ˆ˜ žˆ๋‹ค.

2. ‚ฌšฉ ๋ฐฉ๋ฒ•

<canvas></canvas>
  • canvasœ„— ธ๋ฆผ„ ธ๋ฆฌ๋ ค๋ฉด Javascript๋กœ ธ๋ฆฌธฐ ปจ…ŠคŠธ๋ฅผ ƒ„•••œ‹ค.

    • var canvas = document.getElementById(ฐ€ ˜  ‹€ canvas˜ id);
      var context = canvax.getContext("2d");
      
    • ธ๋ฆฌธฐ ปจ…ŠคŠธ๋Š” ธ๋ž˜”ฝ„ ธ๋ฆฌ๋Š” ๋ฐ ๋„›€ด ๋˜๋Š” ๋ฉ”„œ๋“œ๋ฅผ  œณต•œ‹ค.

2.1. ‚ฌฐ˜• ธ๋ฆฌธฐ

  • œณฝžˆ๋Š” ‚ฌฐ˜•„ ธ๋ฆด ˆ˜ žˆ๋‹ค.
  • ƒ‰œผ๋กœ „šด ‚ฌฐ˜•„ ธ๋ฆด ˆ˜ žˆ๋‹ค.
  • ‚ฌฐ˜•„ ง€šธ ˆ˜ žˆ๋‹ค.

2.2. ด๋ฏธง€ ‚ฝž…

  • img š”†Œ, video š”†Œ, canvas š”†Œ˜ DOM ฒด๋ฅผ ธ๋ฆด ˆ˜ žˆ๋‹ค.
    • img š”†Œ˜ DOM ฒด๋Š” Image ƒ„ž๋ฅผ ‚ฌšฉ•˜—ฌ ๋งŒ๋“ค ˆ˜๋„ žˆ๋‹ค.
    • video š”†Œ˜ DOM ฒด๋ฅผ ‚ฌšฉ•  ฒฝšฐ drawImage()๋ฅผ ˜œ•œ ‹œ —„œ žฌƒ๋˜๋Š” ”„ ˆž„„ ธ๋ ค€๋‹ค.
  • ด๋ฏธง€๋ฅผ ›๋ž˜ ฌธฐ๋กœ ‚ฝž…•  ˆ˜ žˆ๋‹ค.
  • ด๋ฏธง€˜ ‚ฌฆˆ๋ฅผ ง€ ••˜—ฌ ‚ฝž…•  ˆ˜ žˆ๋‹ค.
  • ›๋ž˜ ด๋ฏธง€—„œ ผ๋ถ€๋ถ„„ ž˜ผ๋‚ด–ด ‚ฝž…•  ˆ˜ žˆ๋‹ค.
  • (ธ๋ฆผ ‚ฝž…)

2.3. ๋ณตžก•œ „ ด๋‚˜ ๋„˜• ธ๋ฆฌธฐ

  • ŒจŠค
    • บ”๋ฒ„Šค˜ API๋ฅผ šฉ•˜—ฌ ธ๋ „ „ ๋“ค˜ ‘•ฉ.
    • „œ๋ธŒ ŒจŠค
      • ŒจŠค๋ฅผ ตฌ„•˜๋Š” •˜๋‚˜•˜๋‚˜˜ „ .
      • (ธ๋ฆผ ‚ฝž…)
    • ธ๋ฆฌธฐ ปจ…ŠคŠธฐ€  œณต•˜๋Š” API๋ฅผ šฉ•˜—ฌ ง„ , ๋ฒ ง€— ณก„ , ›˜ธ ๋“ฑ ๋‹–‘•œ ŒจŠค๋ฅผ ธ๋ฆด ˆ˜ žˆ๋‹ค.
  • ŒจŠค๋ฅผ ธ๋ ธ๋ž˜”ฝ„ ‘œ‹œ•˜๋Š” ˆœ„œ
    1. beginPath()๋กœ ธ๋ฆฌธฐ ‹œž‘.
      •  „— ธ๋ ธ๋˜ ŒจŠค๋Š” ๋ชจ๋‘ ๋ฆฌ…‹๋œ‹ค.
    2. บ”๋ฒ„Šค˜ API๋ฅผ šฉ•˜—ฌ ŒจŠค ธ๋ฆฌธฐ.
      • —ฌธฐ„œ ธ๋ฆฐ ŒจŠค๋Š” •„ง ธ๋ž˜”ฝœผ๋กœ ‘œ‹œ๋˜ง€ •ŠŒ.
    3. ธ๋ž˜”ฝ„ ™”๋ฉด— ‘œ‹œ.
      • stroke()
        • ŒจŠค๋ฅผ „ œผ๋กœ ‘œ˜„•œ‹ค.
        • „ ˜ Šคƒ€€ strokeStyle †„œผ๋กœ ง€ ••œ‹ค.
      • fill()
        • ŒจŠค ๋‚ด๋ถ€๋ฅผ „šด๋‹ค.
        • ˜œ‹œ ŒจŠคฐ€ ๋‹žˆง€ •Š•˜๋”๋ผ๋„ ž๋™œผ๋กœ‹žŒ ƒƒœ๋กœ ๋งŒ๋“ ‹ค.
        • ๋‚ด๋ถ€ Šคƒ€€ fillStyle †„œผ๋กœ ง€ ••œ‹ค.
      • clip()
        • ŒจŠค˜ ๋‚ด๋ถ€๋ฅผ ด๋ฆฌ•‘ ˜—ญœผ๋กœ ง€ ••œ‹ค.
        • ด๋ฆฌ•‘ ˜—ญžˆ๋Š” ƒƒœ—„œ บ”๋ฒ„Šค— ธ๋ ง€๋Š” ธ๋ž˜”ฝ€ ด๋ฆฌ•‘ ˜—ญ •ˆชฝ—๋งŒ ‘œ‹œ๋œ‹ค.
        • beginPath()๋ฅผ ˜œ•˜—ฌ ด๋ฆฌ•‘ ˜—ญ„ • œ•  ˆ˜ žˆ๋‹ค.
        • (ธ๋ฆผ ‚ฝž…)

2.4. Šคƒ€ง€ •

  • strokeStyle
    • stroke(), strokeRect() ๋“ฑ„ šฉ•˜—ฌ ธ๋ฆฐ „ ˜ ƒ‰ด๋‚˜ Šคƒ€„ ง€ ••œ‹ค.
  • fillStyle
    • fill(), fillRect() ๋“ฑ„ šฉ•˜—ฌ ธ๋ฆฐ „ ˜ ƒ‰ด๋‚˜ Šคƒ€„ ง€ ••œ‹ค.
  • †„— ง€ ••  ˆ˜ žˆ๋Š” ฐ’
    • CSS Color
      • CSS3˜ ƒ‰ ง€ • ๋ฐฉ๋ฒ•„  „๋ถ€ šฉ•  ˆ˜ žˆ๋‹ค.
      • •„๋ฌด ฒƒ๋„ ง€ ••˜ง€ •Šœผ๋ฉด #000000(ฒ€€ƒ‰)ธฐ๋ณธ ฐ’ด ๋œ‹ค.
    • CanvasGradient
      • „ ˜• ธ๋ผ๋ฐ…˜, ›˜• ธ๋ผ๋ฐ…˜„  šฉ•  ˆ˜ žˆ๋‹ค.
    • CanvasPattern
      • img š”†Œ๋‚˜ video š”†Œ ˜€ ๋‹ค๋ฅธ บ”๋ฒ„Šค๋ฅผ ‚ฌšฉ•˜—ฌ Œจ„„ ง€ ••  ˆ˜ žˆ๋‹ค.
  • globalAlpha
    • globalAlpha †„„ šฉ•˜—ฌ ˆฌ๋ช…๋„๋ฅผ ง€ ••  ˆ˜ žˆ๋‹ค.
    • †„ฐ’€ 0.0(™„ „ ˆฌ๋ช…)๋ถ€„ฐ 1.0(๋ถˆˆฌ๋ช…)นŒง€˜ ฐ’„ ง€ ••  ˆ˜ žˆ๋‹ค.

2.4.1. „  Šคƒ€ง€ •

  • „  Šคƒ€
    • „ ˜ ตตธฐ
    • „ ˜ ๋ 
      • (ธ๋ฆผ ‚ฝž…)
    • „ ๋“คตฐจ–ˆ„•Œ ƒธฐ๋Š” ฐ
      • (ธ๋ฆผ ‚ฝž…)

2.5. ธ๋ฆผž šจณผ

  • ธ๋ฆฌธฐ ปจ…ŠคŠธฐ€ ฐ€„ †„„ ง€ ••˜—ฌ „ ด๋‚˜ ๋„˜•— „‹•˜ฒŒ ธ๋ฆผž šจณผ๋ฅผ ถ”ฐ€•  ˆ˜ žˆ๋‹ค.

2.6. ˜—ญฒน •Œ˜ ๋™ž‘

  • globalCompositeOperation
    • ƒˆ๋กœšด ๋„˜•ธฐกด ด๋ฏธง€™€ ฒน •Œ˜ –‰๋™„ ง€ ••˜๋Š” †„ด๋‹ค.
    • ธฐ๋ณธ ฐ’€ source-over ด๋‹ค.
    • (ธ๋ฆผ ‚ฝž…)

2.7. …ŠคŠธ ‚ฝž…

  • ธ€ผด, ฌธฐ, ฐ€๋กœ ๋ฐฉ–ฅ  • œ„˜, „ธ๋กœ ๋ฐฉ–ฅ  • œ„˜๋ฅผ ง€ ••˜—ฌ …ŠคŠธ๋ฅผ ‚ฝž…•  ˆ˜ žˆ๋‹ค.
  • (๋งฌ)

2.8. ธ๋ž˜”ฝ ๋ณ€˜•

  • ธ๋ฆฌธฐ ปจ…ŠคŠธ˜ ๋ฉ”„œ๋“œ๋ฅผ šฉ•˜—ฌ ขŒ‘œ๋ฅผ
    • ™•๋Œ€, •†Œ
    • šŒ „
    • ด๋™
      •  ˆ˜ žˆ๋‹ค.
    • ขŒ‘œ ๋ณ€™˜ ๋งคŠธ๋ฆญŠค

2.9. ธ๋ฆฌธฐ ปจ…ŠคŠธ ƒƒœ  €žฅณผ ๋ณต›

  • save()
    • ธ๋ฆฌธฐ ปจ…ŠคŠธ˜ ƒƒœ๋ฅผ  €žฅ•œ‹ค.
    • ˜„žฌ บ”๋ฒ„Šค— ธ๋ „ ธ๋ž˜”ฝด๋‚˜ ŒจŠค๋Š”  €žฅ•˜ง€ •Š๋Š”๋‹ค.
    •  €žฅ•˜๋Š” ƒƒœ ๋ฐ †„
      • ขŒ‘œ ๋ณ€™˜ ๋งคŠธ๋ฆญŠค
      • ด๋ฆฌ•‘ ˜—ญ
      • strokeStyle
      • fillStyle
      • globalAlpha
      • lineWidth
      • lineCap
      • lineJoin
      • miterLimit
      • shadowOffsetX
      • shadowOffsetY
      • shadowBlur
      • shadowColor
      • globalCompositeOperation
      • font
      • textAlign
      • textBaseline
    • restore()
      • ธ๋ฆฌธฐ ปจ…ŠคŠธ˜ ƒƒœ๋ฅผ ๋ณต›•œ‹ค.
      • save()๋กœ  €žฅ•œ ƒƒœ๋Š” Šคƒ— Œ“  restore()๋ฅผ ˜œ• •Œ๋งˆ๋‹Šคƒ˜ ƒ‘—„œ๋ถ€„ƒƒœ๋ฅผ ๋ถˆ๋Ÿฌ˜จ๋‹ค.

2.10. ”ฝ…€๋กœ ธ๋ฆฌธฐ

  • ImageData˜• ฒด๋ฅผ ƒ„•˜—ฌ บ”๋ฒ„Šค œ„˜ ๋น„Šธ๋งต ด๋ฏธง€๋ฅผ ”ฝ…€ ๋‹œ„๋กœ กฐž‘•  ˆ˜ žˆ๋‹ค.
  • ImageData˜ †„
    • width
    • height
    • data
      • ”ฝ…€ ๋ฐ„ฐ๋ฅผ ๋‚˜ƒ€๋‚ด๋Š” ˆซž(0~255)๋กœ ด๋ฃจ–ด„ 1ฐจ› ๋ฐฐ—ด.
      • ๋ฐฐ—ด€ 4œ˜ ฐ’•œ๋ฌถŒœผ๋กœ 1”ฝ…€ฐ€„  •๋ณด(R, G, B, Alpha)๋ฅผ ๋‚˜ƒ€๋‚ธ๋‹ค.

2.11. ด๋ฏธง€๋ฅผ URL๋กœ –ปธฐ

  • บ”๋ฒ„Šคฐ€ ฐ€„ toDataURL()„ ˜œ•˜—ฌ บ”๋ฒ„Šค ๋‚ดšฉ„ URL๋กœ –ป–ด˜ˆ˜ žˆ๋‹ค.
  • toDataURL(type)
    • ธ๋ฆฌธฐ ปจ…ŠคŠธฐ€ •„‹ˆ  บ”๋ฒ„Šคฐ€ ฐ€„ ๋ฉ”„œ๋“œด๋‹ค.
    • type
      • ด๋ฏธง€˜ ฝ”๋”ฉ ๋ฐฉ๋ฒ•„ MIME ƒ€ž…œผ๋กœ ง€ ••œ‹ค.
      • ธฐ๋ณธฐ’€ 'image/png'ด๋‹ค.
      • 'image/jpeg'ง€ • ‹œ‘๋ฒˆงธ ˆ˜๋กœ ˆซž(0.0~1.0)๋ฅผ ๋„–ด ด๋ฏธง€˜ ’ˆงˆ„ ง€ ••  ˆ˜ žˆ๋‹ค.

2.12. • ‹ˆ๋ฉ”…˜

  •  • „ฒฉœผ๋กœ บ”๋ฒ„Šค  „ฒด๋ฅผ ๋‹‹œ ธ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•œผ๋กœ • ‹ˆ๋ฉ”…˜„ ตฌ˜„•  ˆ˜ žˆ๋‹ค.

3. ˜ˆ œ


4. ฐธ  ž๋ฃŒ

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:41
Processing time 0.0329 sec