• js图片旋转


      <script type="text/javascript" language="javascript">
        function rotate(id, angle, whence) {
          var p = document.getElementById(id);
          if (!whence) {
            p.angle = ((p.angle == undefined ? 0 : p.angle) + angle) % 360;
          }
          else {
            p.angle = angle;
          }
          if (p.angle >= 0) {
            var rotation = Math.PI * p.angle / 180;
          }
          else {
            var rotation = Math.PI * (360 + p.angle) / 180;
          }
          var costheta = Math.cos(rotation);
          var sintheta = Math.sin(rotation);
          if (document.all && !window.opera) {
            var canvas = document.createElement('img');
            canvas.src = p.src;
            canvas.height = p.height;
            canvas.width = p.width;
            canvas.style.filter = "progid:DXImageTransform.Microsoft.Matrix(M11=" + costheta + ",M12=" + (-sintheta) + ",M21=" + sintheta + ",M22=" + costheta + ",SizingMethod='auto expand')";
          }
          else {
            var canvas = document.createElement('canvas');
            if (!p.oImage) {
              canvas.oImage = new Image();
              canvas.oImage.src = p.src;
            }
            else {
              canvas.oImage = p.oImage;
            }
            //alert(canvas.width)
            canvas.style.width = canvas.width = Math.abs(costheta * canvas.oImage.width) + Math.abs(sintheta * canvas.oImage.height);
            canvas.style.height = canvas.height = Math.abs(costheta * canvas.oImage.height) + Math.abs(sintheta * canvas.oImage.width);
            var context = canvas.getContext('2d');
            context.save();
            if (rotation <= Math.PI / 2) {
              context.translate(sintheta * canvas.oImage.height, 0);
            }
            else if (rotation <= Math.PI) {
              context.translate(canvas.width, -costheta * canvas.oImage.height);
            }
            else if (rotation <= 1.5 * Math.PI) {
              context.translate(-costheta * canvas.oImage.width, canvas.height);
            }
            else {
              context.translate(0, -sintheta * canvas.oImage.width);
            }
            context.rotate(rotation);
            context.drawImage(canvas.oImage, 0, 0, canvas.oImage.width, canvas.oImage.height);
            context.restore();
          }
          canvas.id = p.id;
          canvas.angle = p.angle;
          p.parentNode.replaceChild(canvas, p);
        }
    
        //向右旋转
        function rotateRight(id, angle) {
          rotate(id, angle == undefined ? 90 : angle);
        }
        //向左旋转
        function rotateLeft(id, angle) {
          rotate(id, angle == undefined ? -90 : -angle);
        }
      </script>

    调用方法:

    <div class="content">
      <div class="data">
        <a href="javascript:void(0)" style="font-weight: bold; text-decoration: none; font-size: 16px;"
          onclick="rotateRight('theimage',90);">右转</a> 
    <a href="javascript:void(0)" style="font-weight: bold; font-size: 16px; text-decoration: none;"
    onclick
    ="rotateLeft('theimage',90);">左转</a><br>
    <img src="a.jpg" id="theimage" onload="resizeimg(this,this.width,this.height)" width="100%" alt="800×1422" style="cursor: pointer;" /> </a> <div style="clear: both"> </div> </div> </div>
  • 相关阅读:
    PHP配置文件处理类
    PHP中实现图片上传的类库
    在PHP中实现StringBuilder类
    微软官方及第三方SDK http://msdn.microsoft.com/zhcn/jj923044
    在PHP中模拟asp的response类
    Atitit.并发测试解决方案(2) 获取随机数据库记录 随机抽取数据 随机排序 原理and实现
    atitit. access token是什么??微信平台公众号开发access_token and Web session保持状态机制
    atitit.二进制数据无损转字符串网络传输
    atitit.重装系统需要备份的资料总结 o84..
    atitit.web ui 结构建模工具总结
  • 原文地址:https://www.cnblogs.com/ustcyc/p/3760116.html
Copyright © 2020-2023  润新知