lufy's legend

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 7162|回复: 1
打印 上一主题 下一主题

setTransform高级变形有个小BUG

[复制链接]

6

主题

0

好友

60

积分

士兵

Rank: 1

跳转到指定楼层
楼主
发表于 2015-4-29 18:21:41 |只看该作者 |倒序浏览
本帖最后由 lihuihero 于 2015-4-29 18:23 编辑

  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <meta charset="utf-8">
  5.         <title>高级变形</title>
  6.     </head>
  7.     <style>
  8.         body{
  9.             margin:0;
  10.             padding:0;
  11.         }
  12.         
  13.     </style>
  14.     <body>
  15.         <div><img src="img/face.jpg" width="240" height="240"></div>
  16.         
  17.         <canvas id="myimg" width="800" height="800"></canvas>
  18.     </body>
  19.     <script>
  20.          //save方法用于保存上下文环境,restore方法用于恢复到上一次保存的上下文环境。
  21.          var c=document.getElementById("myimg");
  22.          var ctx=c.getContext("2d");
  23.          var img=new Image();
  24.          img.src="img/face.jpg";
  25.          img.onload=function(){
  26.          
  27.          ctx.save();
  28.          ctx.beginPath();
  29.          ctx.moveTo(0,0);
  30.          ctx.lineTo(240,0);
  31.          ctx.lineTo(0,240);
  32.         
  33.          ctx.closePath();

  34.          ctx.clip();
  35.          
  36.          ctx.setTransform(240/240,0/240,0/240,240/240,0,0)
  37.          ctx.drawImage(img,0,0);
  38.          ctx.restore();
  39.          
  40.          ctx.save();
  41.          ctx.beginPath();
  42.          ctx.moveTo(240,0);
  43.          ctx.lineTo(0,240);
  44.          ctx.lineTo(240,240);
  45.          ctx.closePath();
  46.          ctx.clip();
  47.          ctx.setTransform(240/240,(240-240)/240,(240-240)/240,(240-0)/240,0,240);
  48.          ctx.drawImage(img,0,-240);
  49.          ctx.restore();
  50.          }
  51.     </script>
  52. </html>
复制代码
下边的变形会有1像素的差

分成2个三角形 中间会有1像素的白线出现

我试着改了下 得把 下面花三角的代码该为 239 像素就不会出现问题了 但是上一个会多1像素 要改 drawImgData x为 -1
但是我总感觉不对 。LUFY大大 有什么好办法解决的

红线为改过的代码

QQ图片20150429182248.png

回复

使用道具 举报

37

主题

8

好友

9313

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

沙发
发表于 2015-5-7 10:38:49 |只看该作者
其实应该是clip的问题,不好意思,目前我也没有找到更好的解决办法
不回答与技术和引擎不相关的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

防止垃圾广告,请填写任意字符

Archiver|lufy's legend

GMT+8, 2024-5-8 16:41 , Processed in 0.052210 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部