Alpha dithering?

I wanted to see what would happen if I overlaid an image with varying transparency (PNG) on top of my base image.  This is the PNG that I'm loading (via simple layout/bitmap) reference.

I was surprised at how pixelated the resulting image looks in the Vivoactive 5 simulator:

The black gradient doesn't look nearly as bad as the other colors.  While this is a completely made-up test, I'm wondering if there is anything I can do to improve these results?  For example, if I turn off dithering completely:

I end up with MUCH worse results:

Thanks,
Craig

  • The VA5 doesn't have advanced graphics processing and doesn't support PNG (you should be getting compiler warnings when compiling PNG images). Try it on another device and you should get way better results.

    The FR165 (non music), and both AMOLED instinct devices will get you about the same results as the VA5. 

  • Thanks for responding.  Given the number of faces you have in the store, I imagine you have all kinds of horror stories :-)

    The lack of advanced graphics processing definitely isn't ideal, but my lack of artistic ability is probably a bigger issue.  With that said, I'm surprised relative to PNG's.  The following image is the watchface I've been poking at for a while.  The background and everything other than the icons are all PNG images (or a section of a larger PNG image).  Those are not icon fonts, because I wanted some of the subtle coloring that are coming through.  This renders fine in the simulator as well as on my device.

    If I wanted to add "depth" to the background, would the only way to do that would be to add them to the background image itself?  Right now, it is a small image that is tiled across the watchface.

    Thanks again for any insights.  This is just a little side hobby project, but I will push it as far as I can along the way.

    Craig

  • > The VA5 (...) doesn't support PNG

    FWIW, I have a couple of watchfaces that use PNGs all over the place and they work absolutely fine on VA5. No compiler warnings either.

  • Any image file you use is translated to one of the inner formats during compilation. Maybe the PNG inner formát is not supported, but then leaving it the default format should work on every device.

  • Ha. That would explain why some of the gradients get really botched in the process.

    I had a basic black to dark red radial gradient and it got quantized into 2 colors on the simulator. Added some random noise (dithered the transition basically) and - presto - the quantization is gone and it rendered correctly. I just wrote it off as a PNG rendering glitch of some sort.

  • That's right. PNG will be transformed to "default". If you're simply using flat PNGs, without alpha in the images, this works fine, otherwise you're likely see some weird glitches indeed.