2011.09.07 08:30

5.4 HTML5 Canvas: Image

HTML5 2011.09.07 08:30
캔버스에서는 다순히 백터 그래픽만 표현할 수 있는 것이 아니라 이미지도 표현할 수 있습니다.

<div"><canvas id="c5" width="600" height = "300" style="border:solid 1px #000000;"></canvas>
<div>
<button onclick="draw_dragon();return true;">Draw Dragon</button>
<button onclick="draw_smaller_dragon();return true;">Draw smaller dragon</button>
<button onclick="draw_dragon_head();return true;">Draw Dragon Head</button>
<button onclick="Clear_image();return true;">Erase Everything</button>
</div>
</div>

<script>
  var c5 = document.getElementById("c5");
  var c5_context = c5.getContext("2d");

  var dragon = new Image();
  dragon.src = 'images/chinese_dragon.png';

  function draw_dragon() {
    c5_context.drawImage(dragon, 100, 5);
  }

  function draw_smaller_dragon() {
    c5_context.drawImage(dragon, 10, 5, 58, 100);
  }

  function draw_dragon_head() {
    c5_context.drawImage(dragon, 0, 19, 69, 97, 300, 100, 103, 145);
  }

  function Clear_image() {
    c5_context.clearRect(1, 1, 600, 300);
  }
</script>


drawImage는 이미지를 캔버스에 표현할 때 사용할 수 있습니다. 사용하는 방법은 먼저 Java Script에서 이미지 객체를 생성한 다음 실제 이미지가 존재하는 경로를 설정합니다. 

var dragon = new Image();
dragon.src = 'images/chinese_dragon.png';


이미지가 준비되었으면 drawImage()를 호출해서 캔버스에 이미지를 그리면 됩니다.
drawImage()는 3 가지 방법으로 사용할 수 있는데 3개의 인자를 사용하면 훈순히 이미지의 위치만 x, y로 지정할 수 있고 5개의 인자를 사용하면 출력할 이미지의 넓이와 높이를 지정할 수 있으며 마지막으로 9개의 인자를 사용하면 이미지의 일부를 표시할 수 있다.  

Overloading of drawImage() Description
3 arguments
drawImage (img,x,y)
img is the image element.
x and y being the coordinate to place the image object.
5 arguments
drawImage (img,x,y,width,height)
img is the image element.
x and y being the coordinate to place the image object. width and height will be image size that you want, resize as you want.
9 arguments
drawImage (img, crop_x, crop_y, crop_width, crop_height, x, y, width, height)
img is the image element.
crop_x and crop_y is where you start cropping your image.
crop_width and crop_height is the size you want to crop your image.
x and y still being the coordinate to place the image object.
width and height will be image size that you want, resize as you like it.

 


김영욱 iwinkey@hotmail.com

현재 한국마이크로소프트에서 Evangelist로 근무하고 있으며 국내 유수의 대기업 프로젝트에 참여했던 경험과 Microsoft MVP로 다년간 활동했습니다.
올해는 컨슈머와 관련된 앱을 만드는 다양한 업체들을 발굴하고 지원하는 일을 맡고 있습니다.


HTML5 강좌 전체 목록
  1. HTML5 DocType의 정의
  2. HTML5 Header stuff
  3. Audio
  4. Video
  5. Canvas
    Canvas: Rectangle
    Canvas: Shadow
    Canvas: Path
    Canvas: Image
    Canvas: Text
  6. Web form 2.0
    Input Attr: Placeholder
    Input Attr: Autofocus
    Input Attr: Required field
    Input Attr: DataList
    Input Type: Search
    Input Type: Email, URL, Phone
    Input Type: Range
    Input Type: Number
    Input Type: Date
    Input Type: Color
  7. Towards Semantic Web
    Semantic <mark>
    Semantic <time>
    Semantic <meter>
    Semantic <progress>
    Semantic <section>
    Semantic <header>
    Semantic <footer>
    Semantic <nav>
    Semantic <article>
    Semantic <aside>
저작자 표시 변경 금지
신고