Как на canvas применить изменения к конкретному изображению?

D
На сайте с 17.02.2013
Offline
29
445

Приветствую. Нарисовал два изображения на canvas. Первое изображение - фон, второе - персонаж. Как применить изменения ко второй картинке? К примеру сделать ее черно-белой. Т.е. не трогая фон.

Персонажа можно перемещать мышкой. Делаю это в цикле.


function start_drawing(){
c.width = c.width;
ctx.drawImage(back,0,0);
ctx.drawImage(img,mouse.x-60,mouse.y-84,120,168);
}

Переменная back хранит фон, а img персонажа. Вообще я сомневаюсь, что я правильно рисую эти две картинки. Как вы заметили, фон я рисую также в цикле. Потому что иначе он сразу же исчезает. Есть подозрения, что нужно вычислить координаты персонажа, а также его размеры и применить изменения в этой области. Но как это сделать не представляю. А может и как-то проще это делается?

bay_ebook
На сайте с 28.05.2010
Offline
111
#1

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

http://calebevans.me/projects/jcanvas/

вот такие библиотеки есть, лучше их использовать, ну это мое мнение.

Нужен прогер на php+mysql+понимание чужего кода? (/ru/forum/540660) Вам сюда PHP-шаман (http://php-shaman.pw/)
D
На сайте с 17.02.2013
Offline
29
#2

Все таки хотелось бы вникнуть во все это. Понять как работает.

H
На сайте с 09.10.2012
Offline
11
#3

Работал с canvas, но также использовал библиотеку-"обертку", в которой можно работать с объектами в ООП стиле.

Называлась PaperJS.

D
На сайте с 14.01.2007
Offline
153
#4

рисуйте 2 канваса. один на другом

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий