Comments (8)
This won't work in all cases. For example, if a blur-filter (or any box-filter) is applied to remove high-frequencies, then values from neighboring pixels will be applied to the currently compared pixel and therefore share some of the information, even though they should actually be ignored. What I have done in the past, for example in the Hodman project, was to black-out some areas before applying the filters, or even save screenshots as is. This way, the pixel will share the same black pixel across comparisons. What I can do is to black-out the pixels and then compare black-to-black. This will make sure that there is no additional hash lookup for each pixel (so, no slow-down), and cases like shared pixel values will also be covered.
Does this work for you?
from blink-diff.
So If I understand correctly, you would black-out a region in ImageA then define that region as a property in blinkdiff to ignore?
If that's the case, then that's great.
from blink-diff.
No, actually, I would black-out the area in imageA and imageB, and when the pixels are compared, then they are the same because they are both black.
One thing to note here is that the black-out area would be visible in the result to avoid having "ghost differences". What I mean with that are the differences in position - when the area moves due to CSS changes. For example, since the contents are blacked-out, they will not be used to be compared and shifts of the DOM element would be missed. But, when they are blacked-out, these differences will be noted by Blink-Diff since the whole frame will be shifted. If we, however, remove the black-out in the result, then differences will be highlighted in areas where there are non. That means, black-outs have to stay in the result to show what has been compared.
I hope that makes sense.
from blink-diff.
So I would manually black-out the area in imageA and imageB? Couldn't blinkdiff do the black-out in imageB itself via some property bounds set?
from blink-diff.
Yes, Blink-Diff could do that. The question is simply if this is acceptable for you.
from blink-diff.
That's absolutely acceptable. Thank you.
from blink-diff.
Sorry for the wait. I finally implemented it. The command-line has now the parameter block-out
which gives the coordinates comma-separated, and this one can be called multiple times in the row.
When you access the API directly, then you can even modify the color of the blocking-out - by default it is black. I made it so that the blocked-out area is not visible by default, but when you set the debug flag, you can see the blocked-out areas in the result. This might be cleaner. Let me know if you have any questions or changes to this feature.
The current version is: [email protected]
from blink-diff.
Thank you for implementing this. It's awesome as is!
from blink-diff.
Related Issues (20)
- 'blink-diff' is not recognized as an internal or external command, operable program or batch file. HOT 1
- No Composition Still Composing
- Can't have a delta equal to zero HOT 3
- Error with perceptual mode HOT 6
- Please upgrade pngjs version to support latest node engine
- Error: ERROR: Unsupported bit depth 4
- Ignores completely new additions HOT 4
- Comparison not accurate
- Get output result file
- Status of project HOT 1
- Return image buffer instead writing to output HOT 2
- threshold percentage value seems to be getting ignored
- blink-diff shows Differences as '0%' & returns 'FAIL' as result
- Feature Request: Option for output diff to be in landscape mode as opposed to portrait HOT 1
- TypeError: this._loadImage is not a function
- showing "real" diffs? HOT 2
- Including this in a project results in a missing module error for 'node-zlib-backport'
- How to do perceptual comparison from command-line HOT 1
- How to generate Image output only if images are different
- README.md with invalid param
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blink-diff.