Atvirojo kodo „JavaScript“ API, kad palygintumėte vaizdus
„JavaScript“ biblioteka leidžia programinės įrangos programuotojams palyginti du vaizdus keliose aplinkose, pvz., „Node“ ar naršyklėse ir kt.
Kartais reikia palyginti du vaizdus, kad jie būtų panašūs. Tai labai sudėtingas procesas, kuriam atlikti reikia gerų žinių. Atvirojo kodo pixelmatch biblioteka gali būti labai naudingas pasirinkimas lyginant du vaizdus bet kurioje aplinkoje. Kadangi biblioteka neturi priklausomybių ir veikia su neapdorotais vaizdų duomenų masyvais, todėl ją galima naudoti keliose aplinkose, tokiose kaip Mazgas ar naršyklės ir kt.
Pixelmatch yra labai mažo dydžio ir labai paprasta naudoti, tačiau yra labai greita pikselių lygio vaizdų palyginimo biblioteka. Jis parašytas „JavaScript“ ir iš pradžių sukurtas norint palyginti ekrano kopijas testuose. Biblioteka palaiko tokias funkcijas kaip anti-aliased pikselių aptikimas ir suvokimo spalvų skirtumo metrika.
Anti-aliasing aptikimas yra labai naudinga funkcija, nes paprastai buvo pastebėta, kad tų pačių duomenų pateikimas skirtingose programose, įrenginiuose ar operacinėse sistemose gali sukelti šiek tiek skirtingus rezultatus. Tačiau dažniausiai rekomenduojama nepaisyti šių nedidelių skirtumų ar testų, kad būtų užfiksuoti reikšmingesni duomenys.
Darbo su pixelmatch pradžia
Rekomenduojamas pixelmatch diegimo būdas yra NPM. Norėdami ją įdiegti, naudokite šią komandą.
Įdiekite pixelmatch per NPM
npm install pixelmatch
Kas yra Pixel Match Testing?
Jei reikia palyginti du vaizdus, kad patikrintumėte, ar tarp jų yra kokių nors skirtumų, šiuo tikslu galite naudoti pikselių atitikties testavimą. Gali būti dviejų tipų vaizdai: originalus vaizdas ir pakeistas vaizdas. Galite naudoti programą, kuri gali gauti vaizdus iš jūsų programos ekrano kopijos, o po to vaizdų palyginimo biblioteka gali būti naudojama šiems vaizdams palyginti ir rezultatams rodyti.
Vaizdų palyginimas naudojant „JavaScript“ biblioteką
Atvirojo kodo biblioteka pixelmatch suteikė visas funkcijas, leidžiančias lengvai palyginti vaizdus „JavaScript“ programose. Programinės įrangos kūrėjai turi pateikti vaizdo duomenis palyginimui, taip pat išvesties vietą, kur reikia įrašyti vaizdo duomenis su skirtumais. Jie taip pat turi pateikti matmenis, kurie yra trijų vaizdų plotis ir aukštis. Galite naudoti slenksčio parinktį, kuri leidžia vaizdams šiek tiek skirtis, o tai kai kuriais atvejais gali būti puiku. Atminkite, kad pixelmatch biblioteka reikalauja, kad vaizdai būtų vienodo dydžio.
Vaizdų palyginimas internetu naudojant „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);
Palyginkite vaizdus Node.js naudodami 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));