[Web] different color detection on mobile browser vs desktop
Opened this issue · 5 comments
Bug
Mobile browsers and desktop browsers return a different set of colors for the same image. I'm not sure if this is a bug with node-vibrant
or this library's Web approach. My guess is it's node vibrant?
Take this image:
On a desktop browser, I get these colors, which seem relatively correct. They're essentially grays.
{
"dominant": "#3c3c3c",
"vibrant": "#7f7f7f",
"darkVibrant": "#424242",
"lightVibrant": "#bcbcbc",
"darkMuted": "#3c3c3c",
"lightMuted": "#acacac",
"muted": "#7c7c7c",
"platform": "web"
}
However, on a mobile browser (Chrome or Safari on iOS), I get these colors:
{
"dominant": "#443c3e",
"vibrant": "#3fbf7f",
"darkVibrant": "#040c08",
"lightVibrant": "#9bddbc",
"darkMuted": "#443c3e",
"lightMuted": "#b4bcb4",
"muted": "#847c81",
"platform": "web"
}
Environment info
Library | Version |
---|---|
react-native-image-colors | 1.5.0 |
Steps To Reproduce
- Use this image URL: https://res.cloudinary.com/dn29xlaeh/image/upload/q_75,w_640/v1/beatgig-live/quhilykqgarpqnf9peyk
- Get the colors on a mobile browser
- Get the colors on a desktop browser
Describe what you expected to happen:
- The colors on both platforms should be the same.
Reproducible sample code
Here is a reproducible snack: https://snack.expo.dev/@beatgig/thankful-almond?supportedPlatforms=web
These are the colors it comes up with on a desktop browser:
Meanwhile, here it is on a mobile browser (you'll have to turn your phone sideways to see it on Snack)
I opened an issue on node-vibrant: Vibrant-Colors/node-vibrant#132
I ultimately decided to call the function from a server to always get consistent results. Bummer cause it's slower, but it works that way.
I do wish to explore if this library could be re-written to wrap another C++ library for image color extraction using JSI and WASM for web. I think this is the last resort to unify results for all platforms. Just need to find the time since I have no experience with all of that and would have to explore if its doable.
I do wish to explore if this library could be re-written to wrap another C++ library for image color extraction using JSI and WASM for web
If anyone takes this on, I will be happy to add them as a maintainer of node-vibrant
so we can ship it officially