Open LionsPhil opened 2 months ago
Actually, it's possible I've misunderstood what PNG_COPY does...it doesn't set the palette, does it? Instead it assumes the display palette and the image palette are the same (or you want do color remapping tricks) and just copies indicies.
So I guess I'm actually asking for a way to get the palette out of a loaded PNG after all.
I can't remember off the top of my head how straight-forward this is likely to be, but it makes sense and it's on my long list of things to prod and poke when I get the time!
At a wild guess - it's been so long since I looked into this - the existing get_palette
only works after displaying a PNG?
Ah, it looks like it uses decode()
to load the palette, but passes in a nullptr
for the userdata which might cause... things to happen (horribly crashing, memory corruption and other excitement maybe...).
Since PNGdec has been added, you can now load and set the palette along with an image using PNG_COPY. However, there's no way to get the palette from PNGdec I can see (even undocumented), nor a way to read the current palette from PicoGraphics.
A reason to want this is for palette cycling. This is a nice cheap way to get some animation without having to slowly push new pixels to the display. (You could also do fadeouts, if you really wanted.) Being able to get the palette from the image one way or another (and via PicoGraphics seems the more reasonable) would let me replace the custom image format I'm using with just PNG.