我正在尝试使用 CSS Paint API 为 h1-tag 创建自定义背景。背景应该被剪辑到文本中,所以基本上我想给它“着色”。
- 不幸的是,'-webkit-canvas' 已被弃用。要求是实际使用 h1 标签,而不仅仅是在画布中呈现文本并使用合成模式。
- 我想传入多个图像以使用 ctx.drawImage 进行绘制。
规范对此非常清楚:
CSS.registerProperty({
name: '--my-image',
syntax: '<image> | none',
initialValue: 'none',
inherits: false,
});
class MyWorklet {
static get inputProperties() {
return ['--my-image'];
}
paint(ctx, geom, properties) {
const img = properties.get('--my-image');
console.log(img);
ctx.drawImage(img,10,10,150,180);
}
}
registerPaint('myworklet', MyWorklet);
但是,Chromium 不支持这一点。当前的解决方法似乎是通过background-image: ,
属性传递图像。不幸的是,这将与将绘制工作集注册为背景图像 ( background-image: paint(worklet); background-clip: text;
) 发生冲突。
将图像传递到绘制工作集的其他方法是什么?不一定要通过css变量。我对硬编码或将图像直接导入到paint worklet 很好。