[HTML5] Pobranie koloru z pixela

Witam,

jestem początkujący jeśli chodzi o HTML5. Otóż chciałbym pobrać kolor jednego pixela z obrazka.

Zdaje się nic prostszego, niestety tak nie jest.

var ifPixelIs = function(ctx, pxX, pxY, r, g, b) {

    var imageData = ctx.getImageData(pxX, pxY, pxX+2, pxY+2);

    if(imageData.data[0] == r && imageData.data[1] == g && imageData.data[2] == b){

        return true;

    }

    return false;

}

Chrome ciągle wyrzuca błąd:

Gógluję już chyba z pół godziny i nadal nie wiem co ja mam właściwie zrobić żeby mi to działało.

Wiem że trzeba w headerze HTTP zrobić jakieś Access-Control-Allow-Origin: *, ale to pewnie chodzi o serwery a chcę żeby moja gra działała i na stronie WWW i offline.

Nie wiem czy dobrze rozumiem: mam podać bezwzględną ścieżkę do pliku. To też odpada bo skąd mam wiedzieć gdzie gracz sobie tą moją grę umieści.

Albo ja czegoś nie rozumiem, albo to nie ma prawa działać.

Mam nadzieję że to pierwsze i pomożecie mi rozwiązać ten problem :slight_smile:

Z góry dziękuję.

Pobierasz obrazek z domeny (która ci na to nie pozwala), tutaj ustawiasz sobie na serwerze by cię nie odrzucał.

Jeśli używasz plików lokalnie, przeglądarka myśli że odwołujesz się do serwera i cię blokuje. Jeśli wrzucisz wszystko na serwer nie powinieneś mieć takich problemów. Jeśli chcesz offline musisz sobie umożliwić takie działanie w ustawieniach przeglądarki / możesz sobie usera zapytać o zgodę na zmianę ustawień http://blog.project-sierra.de/archives/1577

kod który jest na stronie którą podałeś nie działa (chyba jest przestarzały, bo post ogólnie sprzed 3 lat)

Zmiana ustawień przeglądarki/pytanie o zgodę raczej nie wchodzi w grę, znając życie połowa graczy pomyśli “nie wiem co to jest to nie wchodzę”

Jak wcześniej wspomniałem, takie coś będziesz musiał wykonać w wypadku pobrania plików na dysk / korzystania z zewnętrznych (poza twoją domeną) plików. Wrzuć na jakiś hosting i wtedy spróbuj.