1.0.0 • Published 15 days ago

@devtea2025/labore-tenetur-in-in v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
15 days ago

@devtea2025/labore-tenetur-in-in

github actions npm version codecov License: MIT

:art: Node.js library to compare 2 images without native libs.

ActualExpectedDifference
actualexpecteddiff

Install

npm install @devtea2025/labore-tenetur-in-in
const { imgDiff } = require("@devtea2025/labore-tenetur-in-in");

imgDiff({
  actualFilename: "example/actual.png",
  expectedFilename: "example/expected.png",
  diffFilename: "example/diff.png",
}).then(result => console.log(result));

API Usage

imgDiff(opt: ImgDiffOptions): Promise<ImgDiffResult>

Create image differential between two images.

ImgDiffOptions

{
  actualFilename: string;
  expectedFilename: string;
  diffFilename?: string;
  generateOnlyDiffFile?: boolean; // default false
  options?: {
    threshold?: number;   // default 0.1
    includeAA?: boolean;  // default false
  }
}
  • actualFilename - Required - Path to actual image file.
  • expectedFilename - Required - Path to expected image file.
  • diffFilename - Optional - Path to differential image file. If omitted, imgDiff does not output image file.
  • generateOnlyDiffFile - Optional - Generate only files with difference
  • options - Optional - An object to pass through pixelmatch.

ImgDiffResult

{
  width: number;
  height: number;
  imagesAreSame: boolean;
  diffCount: number;
}
  • width - Differential image's width.
  • height - Differential image's height.
  • imagesAreSame - It'll be true only if 2 images are same perfectly.
  • diffCount - The number of differential pixels.

Available format

The following codecs are available for input image files.

imgDiff detects the input image format from it's extension name. For example, if the input file name ends with ".jpeg", imgDiff attempts to decode in JPEG way regardless of the actual file format.

The output image format is PNG only.

Contribute

PR or issue is welcome :)

Setup

yarn

Test

yarn test

Run benchmark script

yarn run perf

License

MIT License. See LICENSE under this repository.

eslintconfigebsgraphqlthroattddstructuredClonetimefile systempasswordcss nestingmkdirscolumnsdayjscollection.es6sameValueZeroclifull-widthregexkinesisgenericsArrayBuffer#slicesymlinksstatushookformJSONinstallredux-toolkitsharedarraybufferconcatMaplinewrapajaxconsumemapreducetermbytefunctionalcloudformationspeedapolloworkflowuninstallwhichl10ntypesafegetPrototypeOfastrangeerrorpackagesutilexpresslimitshimfast-copyequalityextendparentObject.entriescompile lessentriescallcorstraversePusheventDispatchersignalspackagereact-hookshasOwntypeiterateBigInt64ArrayrouterrequirebluebirdrequestarktypeargumentyamlArrayBufferReactiveX@@toStringTagString.prototype.trimerrorInt16ArraysettingsobjobjectdeletehandlersstyleguideStreamsjasminestreamsES7stringifieroffsetes8descriptorsjQuerymapvariablesstreamomitawsdirectoryUint8Arrays3setterwritablesigtermcommandercode pointstestercommandES2016windowsdom-testing-libraryfastifyshebangreplaystablecirculareventEmittercomparepropertybrowserslistencryptionwaffindworkervariables in cssjswatcherdependenciesassignsignalcjkfindLastIndexObject.fromEntries256es2017chaittydeeptextrategetnegative zerooptimisttrimdotenves6visualnodees7accessorsimpledbObservablesreadtoolscolumnformatreal-timelesscssbootstrap cssmake dirlinkwatchingbufferawaitfpscomputed-typesecmascriptReflect.getPrototypeOfmodulechinesesharedObjectprefixjesttypedarrayequaltapeECMAScript 2022String.prototype.matchAlldeepclonephonereduceinternal slotbindduplexvpcasyncconfigurableelasticachereusedebugcloudtrailObject.definePropertyRegExp.prototype.flagsonceeslintpluginresolveprettyrgbtypeofrdsInt8ArraytoArrayes-shimsreact-testing-librarysomerapidmatchchromeES5outputTypedArraywalkingownprogressURLhashuuidutilitiesprotocol-buffersiterationtouchinferencefixed-widthfast-deep-clonejsonpipeamazonbootstrap lesscloudfrontES6util.inspectcharacterfast-cloneavamatchesloggingECMAScript 2023dateweblruoptionwgetECMAScript 2017reduxfind-uparraybufferfromfluxloggergetterECMAScript 7$.extendcollectionrecursiveArray.prototype.flatMapinternaldeterministicclonemoveexit-codemochabrowserlook-upmkdirtc39functionsObservablehooksStreamruntimechromiumschemegradients css3flagsspecInt32Arraymimetypeshas-ownexitgradients cssObject.isproxyES2022setPrototypeOfquerystringES2018getOwnPropertyDescriptorstdlibmulti-packageec2ES2017[[Prototype]]ESES2023PromisewhatwgimmercallbindhasclassesreadablekeyMaprmdirArray.prototype.findLaststylesheetkeysshrinkwrapstringifycachepredictablemakeagentfastincludescore-jsfilterArray.prototype.filterhardlinkstypanionroute53checklibphonenumbereast-asian-widthemojiRegExp#flagssyntaxvalidparserforEachendpointansitrimStartidentifiersinspectdefinePropertymetadataprototypesortassertionUint16ArraycryptfindupflattenhttpsefficientmatchAllformcompilerhttpfast-deep-copylogpostcssformserror-handlingsortedsymbolcensorvarsstatemergeloadingtypescriptuptoolkitshamECMAScript 6higher-ordercurlsymbolsHyBiemrlockfileenvsuperstructArray.prototype.includesautoscalingzodcryptowidthutilityargparsextermbundlerparseObject.keysisqueuedataViewECMAScript 3indicatorfull-0react-hook-formcall-bindvalidationclientTypeScriptsqsRxcallboundECMAScript 2020toobjectcoercibleimportexportajvurlcolorsremovecloudwatchclassnamesconnectes5guidform-validationglobArrayBuffer.prototype.slicevalidatebannerflatMaprm -rfperformantnativedeep-clonetslibnegativeflagdynamodbemitcloudsearchrmloadbalancingexpressionCSSStyleDeclarationgdpres-abstractURLSearchParamsspinnerapiescapepositivesidemodulesdefinereadablestreamrandompushpyyamlserializeiammimearraytaskdeep-copyponyfillextensionexectrimLeftnamesES2020byteOffsetcssreducerES8javascriptdebuggerstyled-componentsArray.prototype.findLastIndexless cssbrowserliststatelessYAMLmiddlewareWebSocketUint8ClampedArraytoSortedstylequeueMicrotaskpropertiesscheme-validationcopydomwarninges-shim APIappprotobufinvariantworkspace:*parentsObject.valuessinatraArray.prototype.flattendatastructurereactimmutablenopeauthcolourdescriptionpostcss-pluginObject.assignhelpersfindLastviewpatchfssearchcall-boundquerycontainsFunction.prototype.namees2018package.jsonesbuffersschemanameimportassertclassnamefastclonenested csselectronchanneljapanesesetImmediatesetbcryptarraysUint32ArraypromisesenvironmentssesratelimitspinnerssafeRFC-6455nodejsslicees2015watchFilevaluesSymboleslint-plugintrimEndslotMicrosoftflatWeakSetfastcopyauthenticationextrapackage managerbatchredactdiffBigUint64ArrayenumerablefetchpolyfillECMAScript 2016i18nopengetoptplugineventswriteeslintrobustjshintpathoperating-systemserializationes2016class-validatorvaluegroupBypreserve-symlinksObject.getPrototypeOfisConcatSpreadabletoStringTagcharacterscss lessshellregexpArray.prototype.containssyntaxerrorregularconcatidintrinsicTypeBoxgetintrinsicmkdirpES3typeerrorstringpnpm9sigintyupwordwrapinterruptsargsairbnbweakmapECMAScript 2015hasOwnPropertydependency managerjsdiffprivatecallbackArray.prototype.flatthrottlecss-in-jslazytostringtagbreakES2021picomatchrestfulsymlinktestingwraprm -frdataviewmacosawesomesaucexhrargvoptimizerRxJSswfjsxzeroelbkoreantypesfunctiontyped0less.jsiteratorsequencecreateietypedarraysless compilerirqlivea11ylengthnumbercorelookWeakMapstyleslastSymbol.toStringTagjwtterminaldropwaitenvironmentqsUnderscoreSetcolormonorepolistenerstsconsolelessfigletaccessibilityinpromiseframeworkestreeless mixinsendertestautoprefixerArrayECMAScript 5typed arraylanguageboundmime-dbinstallerquotetelephone
1.0.0

15 days ago