|
| 1 | +# image-diff |
| 2 | + |
| 3 | + |
| 4 | +client web application to compare multiple images. |
| 5 | +<br /> |
| 6 | +you can pan, zoom and diff multiple images at the same time. |
| 7 | +<br /> |
| 8 | +currently support 8bit jpg, png format |
| 9 | +<br /> |
| 10 | +this project was built with the Vue framework and many other libraries. |
| 11 | + |
| 12 | +## Demo |
| 13 | +you can online demo in [https://whwnsdlr1.github.io/image-diff](https://whwnsdlr1.github.io/image-diff/). |
| 14 | +<br /> |
| 15 | +or |
| 16 | +<br /> |
| 17 | +install project as below |
| 18 | +``` |
| 19 | +git clone https://github.com/whwnsdlr1/image-diff |
| 20 | +yarn install |
| 21 | +yarn run serve |
| 22 | +``` |
| 23 | +and access to http://localhost:port |
| 24 | + |
| 25 | +## Usage |
| 26 | +1. load images by drag & drop or dialog that you can open by panel click. |
| 27 | +2. (optional) if the images are different sizes, the other images will be resized to the first image size. |
| 28 | +you can set order of images using file name(index key and value, seperated by two underscore). |
| 29 | +ex) barbara__index__0.jpg, cameraman__index__1.jpg, salesman__index__3.png... |
| 30 | +3. diff ! |
| 31 | +``` |
| 32 | +mouse & touch drag - panning |
| 33 | +mouse wheel & pinch to zoom - zoom in / out |
| 34 | +mouse doubleclick - select reference image |
| 35 | +``` |
| 36 | + |
| 37 | +- x: coordinate x. |
| 38 | +- y: coordinate y. |
| 39 | +- scale: scale, scale is applied before coordinate.(panning) |
| 40 | +- diff: turn on / off diff mode. |
| 41 | +- ref: reference image to diff. you can change ref by frame click in diff mode. |
| 42 | +- tolerance: if difference value(Mean Square Error) is greater than or equal tolerance, pixel is set difference-tag. opposite, set same-tag less than tolerance.  |
| 43 | +- home: move to image load page. |
| 44 | +- rearrange: rearrange frames. drag and drop. |
| 45 | +- setting |
| 46 | +``` |
| 47 | +- define image size: image size to be resized. only can set before load images. |
| 48 | +- show overlay text: show / hidden file name and description. |
| 49 | +- frame row count: frames row count. |
| 50 | +- border width: border width. limit to [0, 40) |
| 51 | +- border color: border color. |
| 52 | +``` |
| 53 | + |
| 54 | +## Browser support - (tested) |
| 55 | +- Google Chrome 77+ |
| 56 | +- Google Chrome 77+ on Android 9+ |
| 57 | +- Mozilla FireFox 68+ |
| 58 | + |
| 59 | +## Project setup |
| 60 | +### Customize configuration |
| 61 | +See [Configuration Reference](https://cli.vuejs.org/config/). |
| 62 | + |
| 63 | +## Third-party libraries |
| 64 | +### Dependencies |
| 65 | +- vue: [https://github.com/vuejs/vue](https://github.com/vuejs/vue) |
| 66 | +- cornerstone-core: [https://github.com/cornerstonejs/cornerstone](https://github.com/cornerstonejs/cornerstone) |
| 67 | +- jpeg-js: [https://github.com/eugeneware/jpeg-js](https://github.com/eugeneware/jpeg-js) |
| 68 | +- pngjs: [https://github.com/arian/pngjs](https://github.com/arian/pngjs) |
| 69 | +- element-resize-event: [https://github.com/KyleAMathews/element-resize-event](https://github.com/KyleAMathews/element-resize-event) |
| 70 | +- vue-lodash: [https://github.com/Ewocker/vue-lodash](https://github.com/Ewocker/vue-lodash) |
| 71 | +- vue-toasted: [https://github.com/shakee93/vue-toasted](https://github.com/shakee93/vue-toasted) |
| 72 | + |
| 73 | +### Dev-Dependencies |
| 74 | +- @vue/cli-plugin-babel |
| 75 | +- @vue/cli-plugin-eslint |
| 76 | +- @vue/cli-service |
| 77 | +- babel-eslint |
| 78 | +- eslint |
| 79 | +- eslint-plugin-vue |
| 80 | +- sitemap-webpack-plugin |
| 81 | +- vue-template-compiler |
| 82 | + |
| 83 | +## TO-DO |
| 84 | +- support other image format(bmp, tiff) |
0 commit comments