在this question的回答中,this fiddle执行"正常"裁剪,即灰色区域矩形外的图像将被裁剪,只有灰色矩形区域内的图像将保留。
"正常"的关键代码裁剪使用函数" clipTo":
object.clipTo = function (ctx) {
ctx.rect(
-(eWidth / 2) + left,
-(eHeight / 2) + top,
parseInt(width * eScaleX),
parseInt(eScaleY * height)
);
}
我想要实现的是" reverse
"裁剪,即裁剪灰色矩形内的图像,只剩下灰色矩形区域外的图像。
这是第一部分。第二部分是" layered
"裁剪,即具有较低z-index
值(object A
)的对象将被具有较高object B
值并与z-index
重叠的对象(object
)裁剪A.将裁剪对象A的重叠区域。
这可行吗?我花了很多时间,但无法找到解决方案,也无法实现这一目标。
提前致谢。