HTML5 > Canvasで画像ファイルを描く

今日の課題:Canvasで画像ファイルを描く




<!DOCTYPE html>
<html>
    <head>
        <title>HTML5の練習@ヒッキープログラミングスレ</title>
        <style type="text/css">
            body { background-color: silver; }
            canvas { background-color: white; }
        </style>
    </head>
    <body>
        <h4>画像ファイルを描く</h4>
        <canvas id="mycanvas" width="640" height="480"></canvas>
        <script language="javascript" type="text/javascript">
 
 
            function mydraw() {
                var canvas = document.getElementById('mycanvas');
                var ctx = canvas.getContext('2d');
 
                var img = new Image();
 
                img.onload = function () {
 
                    ctx.drawImage(img, 10, 10);
 
                    ctx.drawImage(img, 100, 10, img.width * 2, img.height * 2);
 
                    var w = img.width / 2;
                    var h = img.height / 2;
 
                    ctx.drawImage(img, w / 2, h / 2, w, h, w * 8, 10, w * 4, h * 4);
                }
 
                img.src = 'http://0.gravatar.com/avatar/b57970073a83378331824d286bd00fb8';
 
            }
 
            mydraw();
 
        </script>
    </body>
</html>
 

  • 画像ファイルはImageオブジェクトを使ってロードしてdrawImage()で描写する
  • Imageオブジェクトのsrcに画像ファイルのパス(URL)を指定するとロードが開始する
  • Imageオブジェクトのonloadに処理を指定しておいて、画像のロード完了直後に画像を描写できるようにする
  • Imageオブジェクトのwidth,heightで幅、高さを取得できる(もちろん画像ロード後)
  • drawImage(img,x,y) (x,y)の位置を左上とし画像を描写する
  • drawImage(img,x,y,w,h) (x,y)の位置を左上としサイズ(w,h)に拡大・縮小して描写する
  • drawImage(img,sx,sy,sw,sh,dx,dy,dw,dh) 画像ファイルの(sx,sy)の位置からサイズ(sw,sh)だけ切り取って、Canvasの(dx,dy)の位置を左上としサイズ(dw,dh)に拡大・縮小して描写する

タグ:

+ タグ編集
  • タグ:
最終更新:2016年05月12日 05:39