Могут ли две маски слоя jcanvas существовать на одном холсте?

Можно ли создать две независимые маски слоя на одном холсте? Я пытался без особого успеха. Я подозреваю, что это из-за масок, влияющих на индексы слоев. Я выделил это, включив маскирование при наведении курсора ( см. Здесь). Если навести указатель мыши на маску слоя, маски других слоев исчезнут. Если вы рисуете слой с mask:true в качестве свойства появится только одна маска слоя. Вы можете подумать "почему бы не сделать отдельный холст для каждой маски слоя?" Я не могу, потому что я собираюсь использовать $("canvas").getCanvasImage(); визуализировать холст в виде составного JPEG (что было бы трудно с двумя холстами).

Конечной целью будет холст, разделенный вертикально на две панели. Каждая панель будет заполнена перетаскиваемым изображением. Пользователи будут перемещать изображение на панели, чтобы "обрезать" его, а затем отображать результат как составное изображение. Этот пример близок, но перетаскивая зеленую рамку под правую панель, вы создаете мертвое пространство на этой панели.

Спасибо за вашу помощь.

1 ответ

Решение

Да, теперь это возможно с jCanvas. Просто не забудьте позвонить restoreCanvas() метод всякий раз, когда вы хотите восстановить маску, например, так:

$("canvas").restoreCanvas({
    layer: true
});

Вот пример, который я сделал, который использует две маски, чтобы разделить холст на две панели.

Другие вопросы по тегам