Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多快的抗锯齿帆布?_Javascript_Canvas_Mask_Antialiasing_Google Swiffy - Fatal编程技术网

Javascript 多快的抗锯齿帆布?

Javascript 多快的抗锯齿帆布?,javascript,canvas,mask,antialiasing,google-swiffy,Javascript,Canvas,Mask,Antialiasing,Google Swiffy,我不明白当swiffy导出一个包含mask的flash动画时,它是如何成功地反锯齿剪辑mask的 以下是我的例子: 全帆布,带面具。镀铬超脏: 还有一个快速导出,其中有一张在面具内移动的图片。镀铬超净: 我尝试了很多东西,包括画一个200%的画布,然后缩小它,在画我的面具时添加更多的点,但是没有办法在画布上得到一个干净的面具 斯威菲怎么样? 这简直让我发疯 谢谢 不使用剪辑,您可以将剪辑路径绘制到屏幕外画布中,并将其用作蒙版,或者更确切地说,作为alpha遮罩 现在,可以将遮罩与各种复合模式一

我不明白当swiffy导出一个包含mask的flash动画时,它是如何成功地反锯齿剪辑mask的

以下是我的例子:

全帆布,带面具。镀铬超脏:

还有一个快速导出,其中有一张在面具内移动的图片。镀铬超净:

我尝试了很多东西,包括画一个200%的画布,然后缩小它,在画我的面具时添加更多的点,但是没有办法在画布上得到一个干净的面具

斯威菲怎么样? 这简直让我发疯

谢谢

不使用剪辑,您可以将剪辑路径绘制到屏幕外画布中,并将其用作蒙版,或者更确切地说,作为alpha遮罩

现在,可以将遮罩与各种复合模式一起使用,以获得抗锯齿边。在要剪裁的背景中绘制,设置复合模式操作符并绘制遮罩。根据操作员的不同,您可以剪切中心或周围环境,但目标通常相当于使用剪辑

注意:下面的演示仅在Chrome/Opera中有用,因为Firefox/IE已经对剪辑掩码应用了抗锯齿-下面的快照显示了不同之处:

var ctxC=document.getElementByIdclip.getContext2d; var ctxM=document.getElementByIdmask.getContext2d; var w=ctxC.canvas.width,h=ctxC.canvas.height; var img=新图像; img.onload=演示; img.src=http://i.imgur.com/s9ksOb1.jpg; 功能演示{ //定义剪辑路径 ctxC.save; createPathctxC; ctxC.clip; ctxC.drawmagethis,0,0,w,h; ctxC.restore; //创建蒙版/阿尔法蒙版 var matte=document.createElementcanvas, ctx=matte.getContext2d; 哑光宽度=w; 哑光高度=h; //改为填充路径: createPathctx; ctx.fill;//颜色不重要,alpha重要 //现在使用合成剪辑 ctxM.drawImagethis,0,0,w,h;//绘制图像 ctxM.globalCompositeOperation=destination in;//将在掩码覆盖的位置保留bg ctxM.drawImagematte,0,0; ctxM.globalCompositeOperation=源代码结束;//默认模式 //放大一些细节: zoomctxC; zoomctxM; } 函数createPathctx{ var r=88; ctx.beginPath; ctx.moveTo100+r,90; ctx.arc100,90,r,0,6.28; } 函数zoomctx{ ctx.imageSmoothingEnabled= ctx.webkitImageSmoothingEnabled= ctx.mozImageSmoothingEnabled=false; ctx.drawImagectx.canvas,10,10,100,100,70,0,400,400; } html,正文{边距:4px 0 0 4px;溢出:隐藏} 画布{背景:000;边框:1px实心000;边距:0 1px 0} 不使用剪辑,您可以将剪辑路径绘制到屏幕外画布中,并将其用作蒙版,或者更确切地说,用作alpha遮罩

现在,可以将遮罩与各种复合模式一起使用,以获得抗锯齿边。在要剪裁的背景中绘制,设置复合模式操作符并绘制遮罩。根据操作员的不同,您可以剪切中心或周围环境,但目标通常相当于使用剪辑

注意:下面的演示仅在Chrome/Opera中有用,因为Firefox/IE已经对剪辑掩码应用了抗锯齿-下面的快照显示了不同之处:

var ctxC=document.getElementByIdclip.getContext2d; var ctxM=document.getElementByIdmask.getContext2d; var w=ctxC.canvas.width,h=ctxC.canvas.height; var img=新图像; img.onload=演示; img.src=http://i.imgur.com/s9ksOb1.jpg; 功能演示{ //定义剪辑路径 ctxC.save; createPathctxC; ctxC.clip; ctxC.drawmagethis,0,0,w,h; ctxC.restore; //创建蒙版/阿尔法蒙版 var matte=document.createElementcanvas, ctx=matte.getContext2d; 哑光宽度=w; 哑光高度=h; //改为填充路径: createPathctx; ctx.fill;//颜色不重要,alpha重要 //现在使用合成剪辑 ctxM.drawImagethis,0,0,w,h;//绘制图像 ctxM.globalCompositeOperation=destination in;//将在掩码覆盖的位置保留bg ctxM.drawImagematte,0,0; ctxM.globalCompositeOperation=源代码结束;//默认模式 //放大一些细节: zoomctxC; zoomctxM; } 函数createPathctx{ var r=88; ctx.beginPath; ctx.moveTo100+r,90; ctx.arc100,90,r,0,6.28; } 函数zoomctx{ ctx.imageSmoothingEnabled= ctx.webkitImageSmoothingEnabled= ctx.mozImageSmoothingEnabled=false; ctx.drawImagectx.canvas,10,10,100,100,70,0,400,400; } html,正文{边距:4px 0 0 4px;溢出:隐藏} 画布{背景:000;边框:1px实心000;边距:0 1px 0}