Рисование линий обводки вокруг маски: альфа-маска или графическая маска (pixi.js)?
Я хотел бы нарисовать линию обводки вокруг элемента маски.
Идея состоит в том, чтобы иметь прямоугольник со скругленными углами, отображающий изображение, и обводить его вокруг.
Я использую pixi и попробовал что-то вроде этого:
// ui is my ui object
ui.thumbnail = new PIXI.Sprite.fromImage( '2.png' ); // loading a tmp image
// I will then interact with my graphics and update the texture in a promise call, and do something like:
var newTexture = new PIXI.Texture.fromImage( thumbnail.source );
ui.thumbnail.texture = newTexture;
// Now I apply the mask - a graphics mask:
var mask = new PIXI.Graphics();
mask.beginFill(0, 0);
mask.drawRoundedRect(0, 0, newTexture.width, newTexture.height, 40);
mask.lineStyle(5, 0xFF0000); // here I try to draw the stroke, but not visibile being part of the mask itself ...
mask.endFill();
// apply the mask
ui.thumbnail.mask = mask;
Я читал здесь немного о разнице графической маски и альфа-маски: https://github.com/pixijs/pixi.js/issues/2770
Ради попытки я попытался назначить спрайт как свойство маски, но больше не маскирует текстуру и не отображает штрих-линию:
var mask = new PIXI.Sprite();
Как отобразить обводку вокруг маски или какую альтернативу вы бы предложили сделать?
В моем дизайне текстуры имеют разные пропорции ширины и высоты - не приоритет, если можно найти хорошее решение, уравновешивающее маскирование и производительность.