24.10.2016, 12:33
|
Профессор
|
|
Регистрация: 11.02.2015
Сообщений: 254
|
|
Нет смысла, без программы он всё равно не запустится, пояснения в коде чисто для меня, раскрашивал в разные цвета, чтобы видно было в каких направлениях краска выливается за черту и как идёт процесс. Этот код выполняет залив с лейки не закрашенных участков. Работу посмотрите по моим ссылкам. Кликом по изображению кисточки переключение в режим заливки. Там я не указал и посетители пользуются в основном кисточкой.
|
|
24.10.2016, 13:57
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
clecar, избавиться от кнопки:
- или так
<script>var img=new Image;img.onload=function(){o(this)};img.src="imag e.png";function o(b){var a=document.getElementById("peRVI").getContext("2d" );a.globalAlpha=1;a.drawImage(b,0,0,400,400);a.str okeRect(0,0,400,400)}</script>
- или так
<output id="list"><img class="po" src="image.png" id="k" onload="o(this)"></output><script>function o(b){var a=document.getElementById("peRVI").getContext("2d" );a.globalAlpha=1;a.drawImage(b,0,0,400,400);a.str okeRect(0,0,400,400)};</script>
|
|
24.10.2016, 15:55
|
|
Кандидат Javascript-наук
|
|
Регистрация: 15.03.2013
Сообщений: 100
|
|
Rise,
у Вас опечатка: a.str okeRect(0, 0, 400, 400) - пробел из ниоткуда
|
|
24.10.2016, 18:24
|
Профессор
|
|
Регистрация: 11.02.2015
Сообщений: 254
|
|
Опробовал оба варианта, картинка конечно вставляется, если убрать a.str okeRect(0, 0, 400, 400). Но не то что лейка, капризничает даже кисточка.
|
|
24.10.2016, 18:44
|
Профессор
|
|
Регистрация: 11.02.2015
Сообщений: 254
|
|
На сайте у меня работает по этому коду.
<script>
document.ondragstart = function(){return false;}
document.body.onselectstart = function(){return false;}
var pri = document.getElementById("pri");
var pra= pri.getContext("2d");
var pervii = document.getElementById("peRVI");
var raskras= pervii.getContext("2d");
pervii.addEventListener('mousemove', paintCanvas, false);
img = document.createElement('img');
img.onload = function (){ pra.drawImage(img, 0, 0);}
pra.clearRect(0,0,400, 400);
img.src ="risyem/kloyn.png";
</script>
|
|
24.10.2016, 19:01
|
Профессор
|
|
Регистрация: 11.02.2015
Сообщений: 254
|
|
Ваш первый вариант работает аналогично моему. На сервере без проблем, локально на компьютере пиксели не обрабатываются.
|
|
24.10.2016, 19:11
|
Профессор
|
|
Регистрация: 11.02.2015
Сообщений: 254
|
|
Второй себя ведёт точно так же. После чистки cookei на компьютере. Заливку без кнопки или без сервера выполнить невозможно.
|
|
24.10.2016, 19:31
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,501
|
|
Это зависит от браузера. Firefox позволяет получать информацию по пикселям произвольного локального изображения, если сам файл тоже открыт локально. Chrome запрещает, потому что не безопасно: мало ли куда полезет случайно локально открытый файлик.
Каждая позиция по своему оправдана.
Если вы пишете то, что будет использовано в интернете - используйте для тестирования локальный сервер. Слишком многое разнится между запуском "из интернета" и просто запуском файла, целое поле грабель по которым можно пройтись.
__________________
29375, 35
|
|
24.10.2016, 20:18
|
Профессор
|
|
Регистрация: 11.02.2015
Сообщений: 254
|
|
Спасибо, так оно вероятно и есть. У меня Chrome. Firefox попробую установить.
|
|
24.10.2016, 22:05
|
Профессор
|
|
Регистрация: 11.02.2015
Сообщений: 254
|
|
Aetae,
Ваша правота подтвердилась, Firefox не удалось установить. Но в поисках причины удалил менеджер браузеров. У меня были установлены браузеры АМИГО, ХРОМ, ЯНДЕКС, ОПЕРА. Во всех программа раскраски работала одинаково, локально заливка с лейки не срабатывала, остальное было нормально. Теперь по прежнему работает только ЯНДЕКС. В ОПЕРЕ лейка заработала, но не переключается курсор и не срабатывает событие onmouseup оно так же перестало работать в АМИГО и ХРОМ, но в них по прежнему лейка не работает. Ваш совет удалить все, почистить ВИНД, и по новой установить браузеры?
Последний раз редактировалось clecar, 24.10.2016 в 22:08.
|
|
|
|