html5 canvas防微博旋转

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script>
window.onload = function ()
{
    var oimg = document.getElementById('img1');
    var ainput = document.getElementsByTagName('input');
    var inum = 0;
    
    var yimg = new Image();
    yimg.onload = function ()
    {
        draw(oimg);
    }
    
    yimg.src = oimg.src;
    
    function draw(obj)
    {
        var oc = document.createElement('canvas');
        var ogc = oc.getContext('2d');
        
        oc.width = obj.width;
        oc.height = obj.height;
        
        obj.parentNode.replaceChild(oc,obj);
        ogc.drawImage(obj,0,0);
        
        ainput[1].onclick = function ()
        {
            if(inum == 3)
            {
                inum = 0;
            }
            else
            {
                inum ++;
            }
            
            tochange();
        }
        
        ainput[0].onclick = function ()
        {
            if(inum == 0)
            {
                inum = 3;
            }
            else
            {
                inum --;
            }
            
            tochange();
        }
        
        function tochange()
        {
            switch(inum)
            {
                case 1:
                    oc.width = obj.height;
                    oc.height = obj.width;
                    ogc.rotate(90*Math.PI/180);
                    ogc.drawImage(obj,0,-obj.height)
                    break;
                case 2:
                    oc.width = obj.width;
                    oc.height = obj.height;
                    ogc.rotate(180*Math.PI/180);
                    ogc.drawImage(obj,-obj.width,-obj.height)
                    break;
                case 3:
                    oc.width = obj.height;
                    oc.height = obj.width;
                    ogc.rotate(270*Math.PI/180);
                    ogc.drawImage(obj,-obj.width,0)
                    break;
                case 0:
                    oc.width = obj.width;
                    oc.height = obj.height;
                    ogc.rotate(0);
                    ogc.drawImage(obj,0,0)
                    break;            
            }
        }
    }
    
}
</script>
<style>
body{
    background:pink;
    }
#c1{
    background:white;
    }    
</style>
</head>

<body>
<input type="button"  value="←"/>
<input type="button" value="→"/>
<div>
    <img id="img1" src="img/5-5.jpg">
</div>
</body>
</html>

 

posted @ 2015-02-12 17:24  mayufo  阅读(225)  评论(0编辑  收藏  举报