Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.01.2017, 17:59
Аспирант
Отправить личное сообщение для provigator Посмотреть профиль Найти все сообщения от provigator
 
Регистрация: 20.01.2017
Сообщений: 32

<canvas> маска для картинки методом Clip()
есть 2 фигуры:
circle = new Image()
	circle.src = 'circle.png' 	
circle.onload = function() {
	ctx.rect(0, 0, 100, 100) // рисуем квадрат
	ctx.stroke()
	ctx.drawImage(circle, 75, 0) // выводим круг
}



маскируем круг квадратом, методом Clip() :
circle = new Image()
	circle.src = 'circle.png' 
circle.onload = function() {
	ctx.rect(0, 0, 100, 100)
	ctx.stroke()
	ctx.clip()
	ctx.drawImage(circle, 75, 0)
}

метод работает


загружаем 2 картинки:
square = new Image()
	square.src = 'square.png' 
	circle = new Image()
	circle.src = 'circle.png' 
circle.onload = function() {
	ctx.drawImage(square, 0, 0)	// выводим квадрат
	ctx.drawImage(circle, 75, 0) // выводим круг
}



маскируем круг квадратом:
square = new Image()
	square.src = 'square.png' 
	circle = new Image()
	circle.src = 'circle.png' 
circle.onload = function() {
	ctx.drawImage(square, 0, 0)	
	ctx.clip()
	ctx.drawImage(circle, 75, 0)
}

в результате выводится маска


возможно ли в качестве маски указать картинку PNG ?
или метод работает только с объектами rect(), arc() и т.п.

http://stackoverflow.com/questions/1...ng-overlapping
Ответить с цитированием
  #2 (permalink)  
Старый 24.01.2017, 19:14
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

provigator,
Попробуйте в качестве маски png с прозрачным фоном
Ответить с цитированием
  #3 (permalink)  
Старый 24.01.2017, 20:14
Аспирант
Отправить личное сообщение для provigator Посмотреть профиль Найти все сообщения от provigator
 
Регистрация: 20.01.2017
Сообщений: 32

2 картинки PNG с прозрачным фоном:
blue = new Image()
	blue.src = 'blue.png' 
	orange = new Image()
	orange.src = 'orange.png' 
orange.onload = function() {
	ctx.drawImage(blue, 0, 0)	
	ctx.drawImage(orange, 75, 0)
}



маскируем оранжевый круг синим:
blue = new Image()
	blue.src = 'blue.png' 
	orange = new Image()
	orange.src = 'orange.png' 
orange.onload = function() {
	ctx.drawImage(blue, 0, 0)	
	ctx.clip()
	ctx.drawImage(orange, 75, 0)
}

выводится маска...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите со скриптом для уменьшения картинки Arkinsstoun jQuery 3 07.02.2012 22:18
JS для перегрузки картинки sivsoft Элементы интерфейса 2 29.01.2011 19:57
параметр "width" для рандомной картинки Demska Элементы интерфейса 1 12.09.2010 19:14
Картинки для сайта mycoding (X)HTML/CSS 1 13.04.2010 09:52