@@ -72,33 +72,30 @@ function getScreenImage(name, left, top, width, height) {
7272}
7373
7474/* Compare an image to a base image. If it violates a threshold, save the
75- * image and a diff between it and the base image. Returns the resemble
76- * results.
75+ * image.
7776 *
7877 * @param {string } name: base name for the image.
7978 * @param {string } image: a base64 encoded png image.
8079 * @param {number } threshold: allowed difference between this image and the
8180 * base image.
82- * @param {Function } callback: a function to call when complete.
81+ * @param {Function } callback: a function to call when complete with the
82+ * direct comparison results.
8383 */
8484function compareImage ( name , image , threshold , callback ) {
85- var resemble = require ( 'resemblejs ' ) ;
86- var src = path . resolve ( 'dist/data/base-images' , name + '.png' ) ;
85+ const looksSame = require ( 'looks-same ' ) ;
86+ let src = path . resolve ( 'dist/data/base-images' , name + '.png' ) ;
8787 if ( ! fs . existsSync ( src ) ) {
8888 src = path . resolve ( image_path , name + '.png' ) ;
8989 }
90- var refImage = Buffer . from ( fs . readFileSync ( src ) ) . toString ( 'base64' ) ;
91- refImage = 'data:image/png;base64,' + refImage ;
92- resemble ( image )
93- . compareTo ( refImage )
94- . ignoreAntialiasing ( )
95- . onComplete ( function ( results ) {
96- console . log ( 'Image comparison: ' + name + ', delta: ' +
97- Number ( results . misMatchPercentage ) * 0.01 ) ;
98- var passed = ( Number ( results . misMatchPercentage ) <= threshold * 100 ) ;
90+ const refImageBuf = Buffer . from ( fs . readFileSync ( src ) ) ;
91+ const refImage = 'data:image/png;base64,' + refImageBuf . toString ( 'base64' ) ;
92+ const imageBuf = Buffer . from ( image . replace ( / ^ d a t a : i m a g e \/ p n g ; b a s e 6 4 , / , '' ) , 'base64' ) ;
93+ looksSame ( imageBuf , refImageBuf , { ignoreAntialiasing : true , threshold : threshold } )
94+ . then ( function ( results ) {
95+ console . log ( 'Image comparison: ' + name + ', equal: ' + results . equal ) ;
96+ var passed = results . equal ;
9997 saveImage ( name + '-base' , refImage , ! passed ) ;
10098 saveImage ( name + '-test' , image , ! passed ) ;
101- saveImage ( name + '-diff' , results . getImageDataUrl ( ) , ! passed ) ;
10299 results . passed = passed ;
103100 if ( callback ) {
104101 callback ( results ) ;
0 commit comments