Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Проверка поинта на картинке! (https://javascript.ru/forum/project/21251-proverka-pointa-na-kartinke.html)

Solovei95 02.09.2011 17:06

Рисование изображения; создание и возвращение обьекта.
 
Особый скрипт для Canvas:
http://solovei95.github.com/jspack/other/img.html (пример)

Он нужен, если "PointInPath" уже не хватает!
Рисуется картинка как особый обьект!
Короче говоря - можно проверить, находится ли курсор на непрозрачном пикселе картинки-обьекта (но не контекста).

https://github.com/Solovei95/jspack/...her/libs/jp.js (исходники)

dmitriymar 03.09.2011 12:05

Везде в источниках описан этот алгоритм при определении цвета точки.
this.pointInPixel = function(x,y){
var idat = ctx.getImageData(0,0,path.width,path.height);

if(x==null){x=0;}
if(y==null){y=0;}

x = parseInt(x);
y = parseInt(y);

var i = (y * path.width + x) * 4;
if(idat.data[i+3]==0)
{return false;} else
{return true;}
}

return this;
};

Насколько я понимаю это продолжение темы что ты "придумал" как изображение объектом хранить. Объясни ,что ты по твоему мнению "придумал" или "применил первым"? И я не понимаю что это даёт по сравнению со стандартным методом. Определял бы ты цвет точки тогда да. А так это аналог 100% стандартной функции по определению наличия точки,не обладающий какими либо расширенным функционалом по сравнению с ним,но при этом сжирающий ресурсов в сотни раз больше чем стандартный,тоже касается и быстродействия.

Solovei95 03.09.2011 16:31

Вы все не правильно поняли!

Здесь картинка рисуется как обьект!
И определяет точку у обьекта, прозрачен он или нет.

Solovei95 03.09.2011 16:31

Не путать контекст с обьектом, который рисуется на контексте, но имеет более широкие функции!

Solovei95 03.09.2011 16:34

Спецификация:
1. Рисует изображение на основном контексте.
2. Создает новый обьект Canvas, с такой-же шириной и высотой, и что и текущий элемент. При этом изображение рисуется и там.
3. Становиться доступной функция для проверки прозрачности точки у обьекта.

dmitriymar 03.09.2011 17:28

Цитата:

Сообщение от Solovei95
Здесь картинка рисуется как обьект!
И определяет точку у обьекта, прозрачен он или нет.

Фу.....
Еще раз :-/ что ты здесь изобрёл? и код и описание этого метода более года лежит на многих сайтах.
Цитата:

Сообщение от Solovei95
2. Создает новый обьект Canvas, с такой-же шириной и высотой, и что и текущий элемент. При этом изображение рисуется и там

Бред!! копируется область канвы . копируется в объект имедж-Но не в объект Canvas! Точно также как в канву заносятся только объекты имедж если изображение нужно закинуть в канву.

Не изобретай своих "спецификаций" противоречащих норм. спецификациям .

Solovei95 04.09.2011 16:34

Важное обновление: в прототипе drawImage (у обьекта XCanvas):
- this.pointInPixel был исправлен на obj.pointInPixel
- заменен return this на return obj
- Обьявлена переменная obj

Solovei95 04.09.2011 16:34

Это было сделано, чтобы корректно работали обьекты!
Я прошу внимательно изучить исходный код!!!

Отличать this.ctx от ctx и т.п.

Solovei95 04.09.2011 16:47

Я только что радикально обновил код! Теперь вам легко разобрать:
- Рисует картинку на основном холсте
- Рисует картинку на холсте обьекта
- Возвращает обьект
- У обьекта имеется функция проверки непрозрачности точки у холста обьекта

var img = new Image();
img.src = "image.png";
img.onload = function(){
var x = new XCanvas(canvas,"2d"); //Выделяем Canvas
var i = x.drawImage(img,0,0); //Рисуем img и возвращаем обьект
var v = i.pointInPixel(100,100); //Определяем непрозрачность точки у картинки
}

Solovei95 04.09.2011 17:00

Запомните - все знают алгоритм определения цвета точки!
Но здесь описан совсем не тот скрипт, что вы думаете!

Здесь описан особый метод рисования Image.


Часовой пояс GMT +3, время: 14:00.