safari - 使用drawRect的Createjs掩码在Safari中不起作用
问题描述
我想从图片中剪下一些正方形。问题是Createjs
掩蔽drawRect
在 Safari 中不起作用。请在 Safari 中检查以下代码笔
https://codepen.io/anon/pen/moXXRN
它适用于除 Safari 之外的所有浏览器
解决方案
问题不在于遮罩或 EaselJS,而是 Safari 如何处理使用负坐标绘制的缠绕矩形。看起来大多数浏览器将具有一个负尺寸的矩形视为反向绘制,但 Safari 不会。
一个超级简单的画布示例也有同样的问题:
var ctx = document.getElementById("canvas").getContext("2d");
ctx.beginPath();
ctx.rect(50,50,50,50);
ctx.rect(150, 150, 50, 50);
ctx.rect(300, 0, 350, -350);
ctx.fillStyle = "red";
ctx.fill();
在大多数浏览器中,这会绘制剪切区域。Safari 没有。
您使用自己的lineTo()
命令的解决方案是一个很好的解决方法。
推荐阅读
- ruby-on-rails - 如何为 Rails 中的嵌套资源编写此条件语句?
- angular - 在使用 Karma/Jasmine 的 Angular 测试中解决“在 afterAll 中抛出一个错误,不可迭代”
- php - 如何使 Html 下拉列表选择的值打印为 CSV?
- laravel - Laravel:array_push 在 collection->each() 迭代器中不起作用
- asp.net-core - 映射布尔时“可为空的对象必须有一个值”?布尔?
- amazon-web-services - AWS RDS - 备份失败时的事件通知
- postgresql - AWS DMS 任务在 CDC 模式下一段时间后失败
- c# - 如果在提交时抛出异常,C# TransactionScope 会回滚吗?
- symfony - 在没有数据库的情况下使用 Symfony 4.4.23,Symfony 更新会导致此问题
- html - 防止页面加载时菜单动画过渡