Skip to content

Commit 09de96c

Browse files
committed
1. bug fix
2. expose new api
1 parent d22f5b4 commit 09de96c

12 files changed

+1441
-1122
lines changed

README.md

+13-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# vue-image-diff
22

3-
![](https://github.com/whwnsdlr1/vue-image-diff/blob/master/example/example.gif?raw=true)
3+
![](https://github.com/whwnsdlr1/vue-image-diff/blob/master/example/example.png?raw=true)
44
<br />
55
vue component for multiple image comparison.
66
<br />
@@ -121,13 +121,19 @@ optToolBar = {
121121
```
122122
### functions
123123
![](https://github.com/whwnsdlr1/vue-image-diff/blob/master/example/control_panel.png?raw=true)
124-
- open Control panel: openControlPanel()
124+
- openControlPanel(): open Control panel.
125+
- resetState(): reset to initial state.
126+
- setState(): set new state.
127+
- getState(): get current state.
125128

129+
### event
130+
- onstatechange: vue-event raised when state change with state object. you can catch using <vue-image-diff ... @onstatechange="listener" ... />
126131

127132
### Control
128-
- mouse & touch drag - panning
133+
- left mouse & touch drag - panning
129134
- mouse wheel & pinch to zoom - zoom in / out
130135
- mouse doubleclick - change reference image for diff
136+
- right mouse drag - adjust brightness and contrast
131137

132138
## Browser support - (tested)
133139
- Google Chrome 77+
@@ -162,3 +168,7 @@ See [Configuration Reference](https://cli.vuejs.org/config/).
162168
- eslint
163169
- eslint-plugin-vue
164170
- vue-template-compiler
171+
172+
## TO DO
173+
- support tiff, bmp and 16bit png format.
174+
- reduce library size.

dist/vue-image-diff.common.js

+607-481
Large diffs are not rendered by default.

dist/vue-image-diff.common.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/vue-image-diff.umd.js

+607-481
Large diffs are not rendered by default.

dist/vue-image-diff.umd.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/vue-image-diff.umd.min.js

+5-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/vue-image-diff.umd.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

example/example.gif

-5.41 MB
Binary file not shown.

example/example.png

1020 KB
Loading

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vue-image-diff",
3-
"version": "1.0.0",
3+
"version": "1.0.3",
44
"description": "vue component for multiple image diff",
55
"keywords": [
66
"image-diff",

src/App.vue

+191-136
Large diffs are not rendered by default.

src/components/ToolBar.vue

+14-12
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,12 @@ export default {
5555
'options'
5656
],
5757
data: function () {
58+
const Vue = this
5859
return {
59-
x: undefined,
60-
y: undefined,
61-
zoom: undefined,
62-
tolerance: undefined
60+
x: Vue.state.coord.x,
61+
y: Vue.state.coord.y,
62+
zoom: Vue.state.zoom,
63+
tolerance: Vue.state.diff.tolerance
6364
}
6465
},
6566
methods: {
@@ -197,18 +198,18 @@ export default {
197198
198199
if (dom.querySelector('.zoom') != undefined) {
199200
const value = dom.querySelector('.zoom').value
200-
if (value != Vue.state.zoom)
201+
if (value != Vue.state.zoom && isNaN(value) == false && `${value}`.length > 0)
201202
putValue(newState, ['zoom'], Number(value))
202203
}
203204
204205
if (dom.querySelector('.voi-window-center') != undefined) {
205-
const value = dom.querySelector('.voi-window-center').value
206-
if (value != Vue.state.voi.windowCenter)
206+
const value = Number(dom.querySelector('.voi-window-center').value)
207+
if (value != Vue.state.voi.windowCenter && isNaN(value) == false)
207208
putValue(newState, ['voi', 'windowCenter'], Math.min(255, Math.max(0, Number(value))))
208209
}
209210
if (dom.querySelector('.voi-window-width') != undefined) {
210-
const value = dom.querySelector('.voi-window-width').value
211-
if (value != Vue.state.voi.windowWidth)
211+
const value = Number(dom.querySelector('.voi-window-width').value)
212+
if (value != Vue.state.voi.windowWidth && isNaN(value) == false)
212213
putValue(newState, ['voi', 'windowWidth'], Math.min(256, Math.max(1, Number(value))))
213214
}
214215
if (newState.voi != undefined) {
@@ -221,7 +222,7 @@ export default {
221222
if (dom.querySelector('.predefined-image-size-width') != undefined && dom.querySelector('.predefined-image-size-height') != undefined) {
222223
const width = Number(dom.querySelector('.predefined-image-size-width').value)
223224
const height = Number(dom.querySelector('.predefined-image-size-height').value)
224-
if ((width != newState.predefinedImageSize.width || height != newState.predefinedImageSize.height) && width > 0 && height > 0) {
225+
if ((width != Vue.state.predefinedImageSize.width || height != Vue.state.predefinedImageSize.height) && width > 0 && height > 0) {
225226
putValue(newState, ['predefinedImageSize', 'width'], width)
226227
putValue(newState, ['predefinedImageSize', 'height'], height)
227228
}
@@ -285,10 +286,11 @@ export default {
285286
}
286287
if (dom.querySelector('.style-frame-row-count') != undefined) {
287288
const value = dom.querySelector('.style-frame-row-count').value
288-
if (value != Vue.state.style.frameRowCount && isNaN(value) == false)
289+
if (value != Vue.state.style.frameRowCount && isNaN(value) == false && `${value}`.length > 0)
289290
putValue(newState, ['style', 'frameRowCount'], Math.max(1, value))
290291
}
291-
Vue.$emit('state-tochange', newState)
292+
if (Object.keys(newState).length > 0)
293+
Vue.$emit('state-tochange', newState)
292294
}
293295
}
294296
],

0 commit comments

Comments
 (0)