API JavaScript з відкритим вихідним кодом для порівняння зображень

Бібліотека JavaScript дозволяє програмістам порівнювати два зображення в різних середовищах, таких як Node або браузери тощо.

Іноді потрібно порівняти два зображення, щоб побачити, наскільки вони схожі. Це дуже складний процес, і для його виконання потрібні хороші знання. Бібліотека pixelmatch з відкритим кодом може бути дуже корисним вибором для порівняння двох зображень у будь-якому середовищі. Оскільки бібліотека не має залежностей і працює з необробленими типізованими масивами даних зображень, тому її можна використовувати в багатьох середовищах, таких як Node або браузери тощо.

pixelmatch має дуже малий розмір і дуже простий у використанні, але є дуже швидкою бібліотекою порівняння зображень на рівні пікселів. Він написаний на JavaScript і спочатку створений для порівняння скріншотів у тестах. Бібліотека підтримує такі функції, як виявлення згладжених пікселів і перцептивні показники різниці кольорів.

Виявлення згладжування є дуже корисною функцією, оскільки зазвичай було помічено, що відтворення тих самих даних у різних програмах, пристроях або операційних системах може призвести до дещо відмінних результатів. Але здебільшого рекомендується ігнорувати ці невеликі відмінності або тести, щоб отримати більш значущі дані.

Previous Next

Початок роботи з pixelmatch

Рекомендований спосіб встановлення pixelmatch — за допомогою NPM. Щоб установити його, скористайтеся наступною командою.

Встановіть pixelmatch через NPM

 npm install pixelmatch 

Що таке Pixel Match Testing?

Якщо вам потрібно порівняти два зображення, щоб перевірити, чи є між ними якась різниця, для цієї мети можна використати перевірку збігу пікселів. Зображення можуть бути двох типів: вихідне зображення та змінене зображення. Ви можете використовувати програму, яка може отримувати зображення зі знімка екрана вашої програми, а потім бібліотеку порівняння зображень можна використовувати для порівняння цих зображень і відображення результатів.

Порівняння зображень за допомогою бібліотеки JavaScript

Бібліотека pixelmatch з відкритим вихідним кодом забезпечує повну функціональність для легкого порівняння зображень у програмах JavaScript. Розробники програмного забезпечення повинні надати дані зображення для порівняння, а також місце виведення, куди потрібно записати дані зображення з відмінностями. Вони також повинні надати розмір, який є шириною та висотою трьох зображень. Ви можете використовувати параметр порогу, який дозволяє зображенням трохи відрізнятися, що може бути чудовим у деяких випадках. Зауважте, що для бібліотеки pixelmatch зображення мають бути однакового розміру.

Порівняння зображень онлайн через JavaScript API

 const img1 = img1Context.getImageData(0, 0, width, height);
const img2 = img2Context.getImageData(0, 0, width, height);
const diff = diffContext.createImageData(width, height);
pixelmatch(img1.data, img2.data, diff.data, width, height, {threshold: 0.1});
diffContext.putImageData(diff, 0, 0);

Порівняйте зображення в Node.js через pixelmatch

 const fs = require('fs');
const PNG = require('pngjs').PNG;
const pixelmatch = require('pixelmatch');
const img1 = PNG.sync.read(fs.readFileSync('img1.png'));
const img2 = PNG.sync.read(fs.readFileSync('img2.png'));
const {width, height} = img1;
const diff = new PNG({width, height});
pixelmatch(img1.data, img2.data, diff.data, width, height, {threshold: 0.1});
fs.writeFileSync('diff.png', PNG.sync.write(diff));
 Українська