Вопрос по image, javascript – Можно ли сравнить два изображения в Javascript?

5

Есть ли способ сравнить два файла изображения, которые имеют разные имена файлов? Поэтому я смотрю, равны ли они с javascript. Это возможно?

Использование для этого: У меня есть галерея изображений, которые должны появиться в лайтбоксе. Когда лайтбокс открывается, я подключаюсь к обратному вызову, чтобы проверить наличие дубликатов изображений, и, когда они найдены, удалим их из галереи лайтбоксов, чтобы пользователи не видели повторяющиеся изображения.

Учитывая, что JavaScript не имеет доступа к файловой системе, нет. Tyler Crompton
Какое сравнение вы пытаетесь сделать? nullpotent
Попытка увидеть, идентичны ли два изображения, даже если они имеют разные имена файлов. user381800

Ваш Ответ

3   ответа
5

Check if the images have the same width and height. If not, they can't be the same. Create a canvas that will fit both images side-by-side. Draw the images on the canvas. Compare them pixel-for-pixel. This can be done fairly easily using code borrowed from getPixel from HTML Canvas? Remember to break out of loops as soon as a single pixel doesn't match. Your worst-case runtime will be O(wh), which occurs when the images are actually equal.
Да, именно то, что я был в процессе набора текста. Это сработает, но будет очень, очень медленным для большого количества изображений.
Хммм, оглядываясь назад, я думаю, что лучший подход для меня - использовать AJAX и PHP для обработки сравнения .... Кажется, использование JS довольно сложно.
Извините, я понял, что сделал ужасную работу, объясняя, что мне нужно ... Я отредактировал пост, чтобы вы могли более четко видеть, что я пытаюсь сделать.
Эх, PHP тоже должен был бы делать попиксельное сравнение. Вы просто помещаете нагрузку на свой сервер, а не распределяете ее на компьютер пользователя.
0

вы не можете получить доступ к файловой системе без пользователей. согласие.

Но если вы хотите сравнить изображения, доступные для кода javascript, например, с помощью URL-адреса или поля загрузки, вы должны проверить этот вопрос SO:Сравните два изображения в JavaScript

По сути, вы конвертируете изображение вcanvas элемент и использоватьbase64 значение для сравнения двух, так же, как люди подтверждают, является ли документ «действительным» проверяя контрольную сумму этого документа.

0

И не забудьте также проверить ширину и высоту.

Чтобы найти размер файла изображения

Пожалуйста, приведите мне пример, я взволнован по этому поводу.
adamhaskell.net/img/imgsize Одно и то же изображение три раза, разные методы сохранения, разные размеры файлов, один и тот же формат.
хорошо, спасибо за эту информацию. @ Рику не нужна такая чувствительность, поэтому он может использовать мой метод.
Два изображения могут быть визуально идентичны, имея разные размеры файлов. Сравните полное изображение PNG в формате RGB с тем же изображением в индексированном формате PNG. Сравните это изображение с индексированным PNG с изображением с неиспользованными цветами в палитре.

Похожие вопросы