Публикации - API холст

Комбинирование фигур

Для определения каким образом  фигуры, выводящиеся на холст, должны комбинироваться с другими фигурами, существуео свойство globalCom-positeOperation. Рассмотрим возможные значения данного свойства:

  • source-over – новая фигура визуализируется поверх уже имеющихся на холсте.
  • source-in – визуализируется только та часть фигуры, которая перекрывает предыдущую фигуру.
  • source-out – визуализируется только та часть фигуры, которая не перекрывает предыдущую.
  • source-atop – визуализируется только та часть фигуры, которая перекрывает предыдущую фигуру. Предыдущая фигура сохраняется целиком, но остальные фрагменты новой фигуры становятся прозрачными.
  • lighter – визуализируются обе фигуры, но цвет перекрывающихся путей определяется путем сложения цветовых значений.
  • xor – визуализируются обе фигуры, но перекрывающиеся фрагменты становятся прозрачными.
  • destination-over – это противополжность значению по умолчанию. Новые фигуры визуализируются позади фигур уже добавленных на холст.
  • destination-in – сохраняются только те фрагменты существующих фигур, которые перекрываются новой. Все остальные, включая новую фигуру, становятся прозрачными.
  • destination-out – сохраняются только те фрагменты существующих фигур, которые не перекрываются новой фигурой. Все остальные, включая новую фигуру, остаются прозрачными.
  • destination-atop – существующие фигуры и новая фигура становятся прозрачными, за исключением тех фрагментов, где они перекрываются.
  • darker – визуализируются обе фигуры, но цвет перекрывающихся фрагментов определяется вычитанием цветовых значений.
  • copy — визуализируется только новая фигура, остальные становятся прозрачными.
function initiate(){
  var elem = document.getElementById('canvas');
  var canvas = elem.getContext('2d');
  canvas.fillStyle = "#666666";
  canvas.fillRect(100, 100, 200, 80);
  canvas.globalCompositeOperation = "source-atop";
  canvas.fillStyle = "#DDDDDD";
  canvas.font = "bold 60px verdana, sans-serif";
  canvas.textAlign = "center";
  canvas.textBaseline = "middle";
  canvas.fillText("TEST", 200, 100);
}
addEventListener("load", initiate);

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться