Open Source JavaScript API pro porovnání obrázků
Knihovna JavaScript umožňuje softwarovým programátorům porovnávat dva obrázky ve více prostředích, jako je uzel nebo prohlížeče atd.
Někdy je potřeba porovnat dva obrázky, abyste viděli, jak jsou si podobné. Je to velmi komplikovaný proces a jeho provedení vyžaduje dobré znalosti. Open source knihovna pixelmatch může být velmi užitečnou volbou pro porovnávání dvou obrázků v jakémkoli prostředí. Vzhledem k tomu, že knihovna nemá žádné závislosti a pracuje na nezpracovaných typizovaných polích obrazových dat, lze ji použít ve více prostředích, jako je uzel nebo prohlížeče atd.
Pixelmatch má velmi malou velikost a velmi snadno se používá, ale je to velmi rychlá knihovna pro porovnání obrázků na úrovni pixelů. Je napsán v JavaScriptu a původně vytvořen pro porovnání snímků obrazovky v testech. Knihovna podporuje funkce, jako je detekce vyhlazených pixelů a metriky percepčních barevných rozdílů.
Detekce vyhlazování je velmi užitečná funkce, protože obvykle bylo pozorováno, že vykreslování stejných dat v různých aplikacích, zařízeních nebo operačních systémech může generovat mírně odlišné výsledky. Většinou se však doporučuje ignorovat tyto malé rozdíly nebo testy, aby bylo možné získat smysluplnější data.
Začínáme s pixelmatch
Doporučený způsob instalace pixelmatch je přes NPM. K instalaci použijte následující příkaz.
Nainstalujte pixelmatch přes NPM
npm install pixelmatch
Co je Pixel Match Testing?
Pokud potřebujete porovnat dva obrázky, abyste zjistili, zda mezi nimi existuje nějaký rozdíl, můžete pro tento účel použít testování shody pixelů. Mohou existovat dva typy obrázků, původní obrázek a upravený obrázek. Můžete použít aplikaci, která dokáže načíst obrázky ze snímku obrazovky vaší aplikace, a poté lze použít knihovnu pro porovnání obrázků k porovnání těchto obrázků a zobrazení výsledků.
Porovnání obrázků pomocí knihovny JavaScript
Open source knihovna pixelmatch poskytla kompletní funkčnost pro snadné porovnávání obrázků v aplikacích JavaScript. Vývojáři softwaru musí poskytnout obrazová data pro srovnání a také výstupní místo, kam je potřeba zapsat obrazová data s rozdíly. Musí také poskytnout rozměr, kterým je šířka a výška tří obrázků. Můžete použít možnost prahu, která umožňuje, aby se obrázky mírně odlišovaly, což může být v některých případech skvělé. Upozorňujeme, že knihovna pixelmatch vyžaduje, aby obrázky měly stejnou velikost.
Porovnání obrázků online přes 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);
Porovnejte obrázky v Node.js pomocí 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));