【发布时间】:2022-10-08 18:25:35
【问题描述】:
我有一个画布(使用fabricjs),我在其中放置了不同颜色的矩形,但默认情况下填充颜色的不透明度为50%。
最后,我想用各自的颜色将每个矩形的不透明度设置为 100%。我很难识别每个矩形的颜色,所以我可以从"rgba(255,0,0,0.5)" 传递到"rgba(255,0,0,1)",从"rgba(0,255,0,0.5)" 传递到"rgba(0,255,0,1)"(例如)。
这是现在的代码:
function fillColor() {
var objs = canvas.getActiveObjects();
if (!objs) return;
objs.forEach(function (obj) {
if (obj instanceof fabric.Path) {
obj.setStroke('rgba(242,0,222,1)');
} else {
obj.set("fill", 'rgba(242,0,222,1)');
}
canvas.renderAll();
});
}
这只会将每个选定对象转换为'rgba(242,0,222,1)'。
我想成为:
function fillColorOb() {
var objs = canvas.getActiveObjects();
if (!objs) return;
objs.forEach(function (obj) {
if (obj instanceof fabric.Path) {
obj.setStroke('rgba(242,0,222,1)');
} else {
//if (obj.color == 'rgba(242,0,222,0.5)') {
//obj.set("fill", 'rgba(242,0,222,1)');
//}
//if (obj.color == 'rgba(242,0,0,0.5)') {
//obj.set("fill", 'rgba(242,0,0,1)');
//}
}
canvas.renderAll();
});
}
这样,使用if 我可以首先识别矩形颜色,然后根据需要设置 rgba。
谢谢:)
【问题讨论】:
标签: javascript fabricjs fabricjs2