У меня большое исходное изображение, и я хочу отобразить его небольшую часть внутри круга, оставив часть холста вне круга прозрачной.
Руководство Mozilla по композитингу с HTML5 охватывает две темы: globalCompositeOperation
и clip
. Похоже, что оба позволят мне делать то, что я хочу, поэтому мне интересно, каковы недостатки каждого из них, и что я должен использовать.
Я мог бы установить globalCompositeOperation
на source-atop
(или source-in
, но этот кажется некорректным в WebKit ). Затем сделайте холст назначения прозрачным с черным кружком и просто нарисуйте исходное изображение поверх него. Это обеспечит заполнение только части круга.
Или я мог бы нарисовать круговую траекторию и использовать clip
, чтобы определить область отсечения, а затем нарисовать исходное изображение поверх нее, что также должно гарантировать, что будет заполнена только часть круга (фактически, страница Mozilla выше даже есть пример того, как сделать это со звездами).
- Будут ли оба эти метода работать так, как я говорю, или я что-то упустил?
- Если да, то есть ли какие-то серьезные проблемы с одним из этих методов, которые делают одно явно лучше другого?
- Если нет, то какой из них имеет лучшую производительность в целом?
Я бы (чисто умозрительно) предположил, что globalCompositeOperation
будет иметь лучшую производительность, поскольку он применяет операцию на уровне пикселей, тогда как операция clip
должна выполнять пересечение полигонов. Но это всего лишь догадка.