From 3abfc83f99477ae39fec27cc088fafc1d2dd410e Mon Sep 17 00:00:00 2001 From: Lucian Tuca Date: Thu, 15 Nov 2018 12:57:53 +0200 Subject: [PATCH] Image comparison resources --- alfresco-docker-imagemagick/Dockerfile | 23 +++++++++- .../src/main/resources/blue.png | Bin 0 -> 144 bytes .../src/main/resources/compare.js | 42 ++++++++++++++++++ .../src/main/resources/red.png | Bin 0 -> 2014 bytes 4 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 alfresco-docker-imagemagick/src/main/resources/blue.png create mode 100755 alfresco-docker-imagemagick/src/main/resources/compare.js create mode 100644 alfresco-docker-imagemagick/src/main/resources/red.png diff --git a/alfresco-docker-imagemagick/Dockerfile b/alfresco-docker-imagemagick/Dockerfile index 27963f21..91d8693d 100644 --- a/alfresco-docker-imagemagick/Dockerfile +++ b/alfresco-docker-imagemagick/Dockerfile @@ -10,9 +10,28 @@ ENV IMAGEMAGICK_LIB_RPM_URL=https://nexus.alfresco.com/nexus/service/local/repos ENV IMAGEMAGICK_LICENSE_FILE=https://github.com/Alfresco/acs-community-packaging/blob/master/distribution/src/main/resources/licenses/3rd-party/ImageMagick-license.txt ENV JAVA_OPTS="" -COPY target/alfresco-docker-imagemagick-${env.project_version}.jar /usr/bin +# Image comparasion utils +RUN yum -y install epel-release && \ + curl --silent --location https://rpm.nodesource.com/setup_8.x | bash - && \ + yum -y install nodejs && \ + yum -y install gcc-c++ make && \ + yum -y install libpng12 && \ + node -v && \ + npm -v && \ + #https://www.npmjs.com/package/mz + npm i mz && \ + #https://www.npmjs.com/package/resemblejs + npm i resemblejs && \ + mkdir /cmp -RUN ln /usr/bin/alfresco-docker-imagemagick-${env.project_version}.jar /usr/bin/alfresco-docker-imagemagick.jar && \ +# Image comparasion file +COPY target/compare.js /cmp +COPY target/red.png /cmp +COPY target/blue.png /cmp + +COPY target/alfresco-docker-imagemagick-2.0.0-RC2-SNAPSHOT.jar /usr/bin + +RUN ln /usr/bin/alfresco-docker-imagemagick-2.0.0-RC2-SNAPSHOT.jar /usr/bin/alfresco-docker-imagemagick.jar && \ yum install -y wget && \ wget $IMAGEMAGICK_RPM_URL && \ wget $IMAGEMAGICK_LIB_RPM_URL && \ diff --git a/alfresco-docker-imagemagick/src/main/resources/blue.png b/alfresco-docker-imagemagick/src/main/resources/blue.png new file mode 100644 index 0000000000000000000000000000000000000000..b87f18af22fd5ad9665a6fe858b9f239e3510376 GIT binary patch literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^4?&oN8Ax*GDtQ1Y<^Z1%SNoM;t>Wjo0J$EXE{-7; tbKV|o1acS-FZdZ8|9~Tu5yT+{eBeE{h=DPjKYB4pm#3?r%Q~loCIHKR8PEU# literal 0 HcmV?d00001 diff --git a/alfresco-docker-imagemagick/src/main/resources/compare.js b/alfresco-docker-imagemagick/src/main/resources/compare.js new file mode 100755 index 00000000..15a2dcca --- /dev/null +++ b/alfresco-docker-imagemagick/src/main/resources/compare.js @@ -0,0 +1,42 @@ +#!/usr/bin/node +const compareImages = require('resemblejs/compareImages'); +const fs = require("mz/fs"); + + +// npm i mz +// npm i resemblejs + +async function getDiff(img1Path, img2Path){ + const options = { + output: { + errorColor: { + red: 255, + green: 0, + blue: 255 + }, + errorType: 'movement', + transparency: 0.3, + largeImageThreshold: 1200, + useCrossOrigin: false, + outputDiff: true + }, + scaleToSameSize: true, + ignore: ['nothing', 'less', 'antialiasing', 'colors', 'alpha'], + }; + + // The parameters can be Node Buffers + // data is the same as usual with an additional getBuffer() function + const data = await compareImages( + await fs.readFile(img1Path), + await fs.readFile(img2Path), + options + ); + + console.log(data); + + await fs.writeFile('./output.png', data.getBuffer()); + await fs.writeFile('./output.json', JSON.stringify(data)); +} + +getDiff(process.argv[2], process.argv[3]); +//getDiff('/Users/p3700621/Downloads/44174363_1996471110414725_5527179798176071680_o.jpg', '/Users/p3700621/Downloads/44300765_1996444827084020_2153540260556963840_o.jpg'); \ No newline at end of file diff --git a/alfresco-docker-imagemagick/src/main/resources/red.png b/alfresco-docker-imagemagick/src/main/resources/red.png new file mode 100644 index 0000000000000000000000000000000000000000..b4ef5f47b5381020ade6a9377968744a79ce1388 GIT binary patch literal 2014 zcmcIlYgkfe9A~w(Ou9@hZ|PGm%gln1%rsk)wH#W`GRx=CrW4uvwkv}5a*-O2oso+k-TE(@}P?1zkwDXB~$AA`5# z zZ=-Ju*y#z8SrRsHbZu7C@}qkR84RBnYqhU?(-Ib|(~dFJ8#gQXPsm=h-9G+f6p2{r z=^P!0Nh$XvP;`5`2+Rr}Q{6F4qIz{m$#3~a6GPu7bt<-&c_K#8x~5I6;@azP_&4mM z{#EK@ak}qZmCYm7@vC7XLpfDBc%fZss~Z*sP?t*-cDYs}QM;jevF0d2iMMpHn)%xQQDb1-i#hDsbqM_YM^0a zD+7PBP0#(3UfahU46x~X5Yb;AE?ik}7DTQQS5mBXjhMt%^MHJRJz0Dpx-Xc6c5dG# z%nmNiWcYAzl!Y#|d+)NqxpS9rHJdgx;l?6Gm5mhz6T86zCfssCMe!Bmq!ab_t-5&@ z9+s{owd*X5o@G;PZWM}J+XX#k!S<**Of$#1d#)N~nrT-te^)mhO2t(1 zNDi%tf&0SUi6t?U0~dQIJ06{4H_kbPciPO{UekKMG;VTLNJeU*YYR0jC}ZE`I8(@0 zsDkKk=iCxLPv2ObXVUMb&>;>a7v8)sKFScx5ileW=AeTVa=bM#>t5FWq)+KH`ln zwF6`%OX`1UV-MYvlso*`JNEB1!3w!(u*4FOR7I^H;)SRyqGRWJOV>QK91UK|-jA5S z+P(LDL_h1~h(v_j00Yeq*o0~tz+z$gpq4X&6=beApdT2U$CBd!Tf{q%jooQjV#FmN z{z&7NRtehiaSoaCJ@FcV<)xxhWn_|u99c!et-I7o{o(x#EqVb~YOOmu52S0KlSY8euAkAY?Dk z0;b%rt?u-`56fLI{d3S7I3?f6AU*~Q%3FpO3224y0NNJ8on}0w#Q0`qvr?ml65-+#J!HGlc1=(*9YwqUB1|%KG z9!BzMHvsOmxdD_k33H?haMFPud13+bGS!+iWiae#a`~21CN>R=>X)2+>Mz=-IGQd9IK?C^_T=-~;0B*jZ1=|2` zy!h}QnmY&eyP?3|MRN