Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Получения цвета пикселя картинки (https://javascript.ru/forum/dom-window/29892-polucheniya-cveta-pikselya-kartinki.html)

Akar 16.07.2012 01:24

Получения цвета пикселя картинки
 
Всем привет, спустя энное количество часов в гугле нашел вот такое решение: http://jsfiddle.net/9SEMf/2/

Но при попытке его повторить на локальном компьютере получаю ошибку:

Unable to get image data from canvas because the canvas has been tainted by cross-origin data.
Uncaught Error: SECURITY_ERR: DOM Exception 18


Вот код моего файла:

<html><head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title> - jsFiddle demo</title>
  
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js"></script>
  
  <link rel="stylesheet" type="text/css" href="css\normalize.css">
  <link rel="stylesheet" type="text/css" href="css\result-light.css">
  
  <style type="text/css">
    body {background: lightblue;padding: 20px;}
pre {color: black}
img {position: relative;}
  </style>
  


<script type="text/javascript">
$(window).load(function(){
$(function() {
    $('img').mousemove(function(e) {
        if (!this.canvas) {
            this.canvas = $('<canvas/>').css({
                width: this.width + 'px',
                height: this.height + 'px'
            })[0];
            this.canvas.getContext('2d').drawImage(this, 0, 0, this.width, this.height);
        }

        var pixelData = this.canvas.getContext('2d').getImageData(event.offsetX, event.offsetY, 1, 1).data;

        $('#output').html('R: ' + pixelData[0] + '<br>G: ' + pixelData[1] + '<br>B: ' + pixelData[2] + '<br>A: ' + pixelData[3]);
    });
	});
});
</script>

</head>
<body>
  <img id="my" src="img\pairs\logo.png">

<pre id="output">R: 255<br>G: 255<br>B: 255<br>A: 144</pre>
</body></html>



Что я делаю не так?

Akar 16.07.2012 01:48

http://fiddle.jshell.net/9SEMf/33/show/

Даже тупо делаю сейв страницы и оно не работает =\

Deff 16.07.2012 01:56

http://msdn.microsoft.com/ru-ru/libr...(v=vs.85).aspx
http://javascript.ru/forum/events/15...html#post92005

vadim5june 16.07.2012 03:08

Цитата:

Сообщение от Akar (Сообщение 189158)
Всем привет, спустя энное количество часов в гугле нашел вот такое решение: http://jsfiddle.net/9SEMf/2/

Но при попытке его повторить на локальном компьютере получаю ошибку:

Unable to get image data from canvas because the canvas has been tainted by cross-origin data.
Uncaught Error: SECURITY_ERR: DOM Exception 18

на локальном компьютере не работает getImageData во всех браузерах кроме оперы
попробуйте запустить в опере


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