canvas - 是否可以在画布上为每个操作设置一个过滤器?
问题描述
在画布上,是否可以将过滤器应用于一个绘图操作,而不是另一个?
ctx.font = '48px serif';
ctx.filter = 'blur(4px)';
ctx.fillText('This is blurry', 30, 60);
ctx.filter = undefined;
ctx.fillText('This should not be blurry', 60, 100);
我希望第一个文本绘制得模糊,但第二个文本要清晰。有没有办法做到这一点?
解决方案
filter
不接受undefined
。您正在寻找的价值是'none'
:
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
ctx.font = '48px serif';
ctx.filter = 'blur(4px)';
ctx.fillText('This is blurry', 30, 60);
ctx.filter = 'none';
ctx.fillText('This should not be blurry', 60, 100);
<canvas id="canvas"></canvas>
推荐阅读
- json - 无法使用 python kubernetes-client 库修补 Kubernetes 节点
- reactjs - react-native-ui-kitten 与 Expo
- mysql - MYSQL - 如果字段为空,我的带有 wp_usermeta 的 Select 语句返回零行。为什么?
- algorithm - 最大堆算法任务
- angular - Angular 测试:测试文件的方法
- powerbi - Power BI - 如何计算上个月的记录
- javafx - 即使在加载 fxml 文件后,Imageview 对象仍为空
- sql - 在 SQL 中用逗号分割字符串
- json - Apache Storm 中的 JSON Kafka spout
- c - c6386 写入时缓冲区溢出 - 指针数组