@Fox не работает
Не работает npm модуль (скрипт)
-
Всем привет товарищи. В общем вторые сутки мучаюсь, хочу установить модуль перцептивный хэш для изображения, выбор пал на https://www.npmjs.com/package/phash-js.
Что я сделал:
- Установил Node.js 12.18.3
- Установил npm модуль (https://www.npmjs.com/package/phash-js)
- Вызвал скрипт следующим кодом:
var pHash = require('phash-js'); var image = '[[PROJECT_DIRECTORY]]/123.jpg'; pHash.hash(image).then(hash => { console.log(hash.toBinary()) // 1011010111010110010100100000101100101011001011110011110111110111 console.log(hash.toHex()) // b5d6520b2b2f4000 console.log(hash.toInt()) // 13102750373803672000 })Однако, увы и ах, но не работает. В логах пишет мне "ReferenceError: Worker is not defined", кто разбирается подскажите пожалуйста как правильно подключить данный модуль... А то действительно, уже сдался)
-
@GippeR said in Не работает npm модуль (скрипт):
var image = '[[PROJECT_DIRECTORY]]/123.jpg';
Не берусь утверждать, но почему у вас весь путь к картинке в кавычках?
var image = '[[PROJECT_DIRECTORY]]/123.jpg';в таком случае реального пути не будет, должно быть по идее так
var image = [[PROJECT_DIRECTORY]]+'/'+'123.jpg'; -
@UserTrue said in Не работает npm модуль (скрипт):
Jimp
Посмотрел, да... там можно ресайзить и так далее, но там целый скрипт надо будет писать для хеширования, я нуб в этом... Мне бы готовый вариант, чтобы пару строчек исправить и в путь. Или я наивен и таких скриптов в природе не существует?
-
@GippeR Да там все уже написано https://github.com/oliver-moran/jimp/tree/master/packages/jimp#comparing-images
-
Нашел вот этот https://www.npmjs.com/package/imghash, работает, но с файлами которые в корневой директории скрипта.... Не очень удобно, как можно дописать или переделать, чтобы он работал с картинками в формате base64...?
-
Подскажите пожалуйста... Вот фрагмент кода, который работает и создает кеш для картинки
const hash1 = await imghash.hash([[PROJECT_DIRECTORY]]+'/'+'original.jpg', 8, "binary");Однако, у меня изображения будут в base64 формата.... Как мне правильно написать, чтобы скрипт обрабатывал base64 изображения? И делал для них хеш. Просто качать картинки на сервер геморойно... Или это невозможно?
-
@UserTrue Спасибо большое за помощь, с этим я разобрался.... Правда и методом тыка, все-таки вернулся к вашей рекомендации по использованию модуля jimp... Но я до сих пор не допер, как мне создать хеш для картинки, пробовал такой вариант
Jimp.read(image) .then(image_user => { return image_user .hash(8) .write('тест.txt'); });Тут понятно, он ничего не сохраняет... Но и ощибок модуль не выдает, значит хеш создает, но вот как его взять... Вывести в ту же переменную, вот здесь я застрял...
-
Тут такое дело, а как посчитать среднее значение цвета пикселя, и если оно меньше 50%, то делаем его белым.... В идеале хочу вот так картинку преобразовывать http://joxi.ru/BA0egnef1ZwaYr
На данный момент, я сделал 3 пункта, но с 4 не знаю как написать код... Помогите пожалуйста.
-
@GippeR если я правильно вас понял то вам нужен метод threshold https://github.com/oliver-moran/jimp/tree/master/packages/plugin-threshold
