Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.08.2013, 13:44
Новичок на форуме
Отправить личное сообщение для MellDixX Посмотреть профиль Найти все сообщения от MellDixX
 
Регистрация: 04.08.2013
Сообщений: 4

Идентифицировать картинки
Здравствуйте. Такая ситуация: есть на странице две картинки, полученные по своим временным ссылкам. Эти картинки являются ссылками и могут меняться местами друг с другом.
<table>
<tbody>
<tr><td>
<a class="active_s" href="/hunting/955?r=1357817950.5097"><img src="/hunting/image/955?r=1357817950.5097" width="110" height="15" alt="[картинка]"></a>
</td><td width="50%">
</td><td>
<a class="active_s" href="/hunting/54?r=1357817950.5097"><img src="/hunting/image/54?r=1357817950.5097" width="110" height="15" alt="[картинка]"></a>
</td></tr>
</tbody>
</table>


По хтмл-коду неясно, какая где, их пиксельные размеры одинаковы - то есть просто так их не отличишь. Нужно как-нибудь идентифицировать эти картинки: узнать их размер в битах, проверить цвет определённого пикселя или "прочитать" их как текст (а-ля виндовый блокнот) или даже как двоичный/хекс код. Всё, что нашел в гугле либо не работает, либо не подходит, либо я не понял (в основном). Надеюсь на вашу помощь в реализации одного из способов.
Картинки прикрепляю.
По идее, скрипт должен быть такой:
var data = [], canvas = document.createElement('canvas'), context = canvas.getContext('2d');
(function (i) {
    if (i <= 1) {
        data.push(document.getElementsByClassName('active_s')[i].getElementsByTagName('img')[0]);
        var image = new Image(), args = arguments;
        image.src = data[i].src;
        image.onload = function () {
            context.clearRect(0, 0, canvas.width, canvas.height)
            context.drawImage(image, 0, 0);
            if (context.getImageData(5, 9, 1, 1).data[0]) {
                data[i].parentNode.click(); // Клацаем по "Искать путь"
            } else args.callee(++i);
        };
    };
})(0);

НО он не подходит.. в нем ошибка есть... Помогите пожалуйста!
Изображения:
Тип файла: png 166.png (714 байт, 1 просмотров)
Тип файла: png 430.png (664 байт, 1 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 04.08.2013, 14:39
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Какая в нем ошибка? Че ты загадками говоришь-то, а?
Ответить с цитированием
  #3 (permalink)  
Старый 04.08.2013, 15:29
Новичок на форуме
Отправить личное сообщение для MellDixX Посмотреть профиль Найти все сообщения от MellDixX
 
Регистрация: 04.08.2013
Сообщений: 4

danik.js,
вот ссылка с точно такой же проблемой, только картинки немного другие. http://www.cyberforum.ru/javascript/...827-page2.html
Ответить с цитированием
  #4 (permalink)  
Старый 04.08.2013, 15:50
Профессор
Отправить личное сообщение для mta88 Посмотреть профиль Найти все сообщения от mta88
 
Регистрация: 16.05.2013
Сообщений: 229

Цитата:
вот ссылка с точно такой же проблемой
той теме полгода
там не такая же проблема, а такой же текст, то есть это ваша тема?
и вы за полгода не решили проблему?

в любом случае не вполне понятно, что вам нужно
не можете различить эти две картинки?
тогда сохраните их в переменные при загрузке страницы
или присвойте им специальные id-шники при загрузке страницы
Ответить с цитированием
  #5 (permalink)  
Старый 04.08.2013, 16:11
Новичок на форуме
Отправить личное сообщение для MellDixX Посмотреть профиль Найти все сообщения от MellDixX
 
Регистрация: 04.08.2013
Сообщений: 4

mta88,
Объясню точней. Я, как и многие в моём возрасте, играю в браузерные онлайн-игры. То что написано в той теме (на которую я ссылку кидал) - проблема решена. Мне нужен похожий скрипт - который только для других картинок. Ситуация такая: Есть элементарная браузерная игра, без флеша, js и прочих наворотов. В ней есть ПВЕ-режим, в котором можно очень быстро и просто прокачать уровень персонажа. Но в нём есть "капча": время от времени выводятся две картинки, значения которых "искать путь" и "уйти". Они в хтмл-коде неразличимы, загружаются по временной ссылке в которой используется случайное значение - то есть по src отличить их невозможно, и загрузить их второй раз тоже не получится. И нужно как-то отличить эти картинки одну от другой средствами JavaScript. Вопрос: как?
Ответить с цитированием
  #6 (permalink)  
Старый 04.08.2013, 16:31
Профессор
Отправить личное сообщение для mta88 Посмотреть профиль Найти все сообщения от mta88
 
Регистрация: 16.05.2013
Сообщений: 229

Цитата:
Я, как и многие в моём возрасте, играю в браузерные онлайн-игры.
ага, значит вам от 12 до 40, но это неважно

задача вроде понятна
если проблемы различаются только картинками, то наверно нужно изменить числа в строке 10, возможно первые 4 из 5
if (context.getImageData(5, 9, 1, 1).data[0]) {

но так лениво сравнивать пиксели
может кто другой поможет
Ответить с цитированием
  #7 (permalink)  
Старый 04.08.2013, 16:47
Новичок на форуме
Отправить личное сообщение для MellDixX Посмотреть профиль Найти все сообщения от MellDixX
 
Регистрация: 04.08.2013
Сообщений: 4

mta88,
Тимур, расскажите как считать - я сам посчитаю...
Ответить с цитированием
  #8 (permalink)  
Старый 04.08.2013, 16:53
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от MellDixX
браузерная игра, без флеша, js и прочих наворотов
А как она тогда работает? На HTML? Или на CSS?

Я бы сказал "используй код, который ты сам принес", но ты говоришь
Сообщение от MellDixX
НО он не подходит
Не буду спрашивать почему он не подходит, тебе видней.
Так что ничего подсказать не могу.
Ответить с цитированием
  #9 (permalink)  
Старый 04.08.2013, 18:16
Профессор
Отправить личное сообщение для mta88 Посмотреть профиль Найти все сообщения от mta88
 
Регистрация: 16.05.2013
Сообщений: 229

Сообщение от MellDixX Посмотреть сообщение
расскажите как считать - я сам посчитаю...
"context.getImageData(5, 9, 1, 1).data" возвращает массив из 4-x чисел (красный, зеленый, синий, прозрачность -- все от 0 до 255) пикселя, по счету 6-го слева и 10-го сверху (потому что координаты пикселей начинаются с нуля)

var data = context.getImageData(5, 9, 1, 1).data;
if (data[0]==100 && data[2]==200) {

тут проверяю, что красный равен 100 и синий равен 200

не знаю, понятно ли то что я написал
придется вам наверно подучить javascript
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить не нужные картинки utb jQuery 2 26.10.2011 13:50
Ссылка джаваскриптом с картинки seasick Общие вопросы Javascript 2 05.09.2011 15:48
скрол мышкой картинки внутри слоя snk Элементы интерфейса 7 07.09.2010 18:22
Получение координат от картинки EmDmAl Events/DOM/Window 4 08.11.2009 14:34
Как изменить размер картинки? Mihail Общие вопросы Javascript 1 25.10.2009 13:42