Hello,
I’m running openHAB3 on an Arch Linux based distribution and all is well when using the web interface or even the android application.
But now I’m trying to render sitemaps on an embedded platform which uses a very specific chip to interface with the LCD screen.
This platform can retrieve the sitemap JSON just fine and I wrote the code to interpret it and render the appropriate elements for my use case.
The chip even has the ability to decode PNG content, so I decided to leverage this capability by fetching the icon data with URLs of the following kind:
http://server:8080/icon/temperature?state=25.8&format=png http://server:8080/icon/rollershutter?state=43&format=png
This gives me PNGs file with transparency which displays fine in a web browser. However, on the platform that I’m using, the second one is not accepted.
Reading the documentation for that chip, it is clearly indicated that only images with a bit depth of 8 are supported. The image for temperature
is a paletted 8 bit ARGB PNG but the one for rollershutter
is sent as a 4 bit ARGB PNG.
The choice to use the smallest possible file size makes perfect sense from a network point of view, and I agree that the chip that I’m using is not respecting the PNG standard that clearly states that any format should be accepted when decoding.
That being said, I’m writing this message to ask whether it is possible to indicate the kind of PNG that gets generated by the above kind of URLs.
Now, looking at the code inside IconServlet.java, I could not see any query string parameter that would appear to have the effect that I’m looking for.
In my mind, the PNG returned by these URLs are generated on the fly from their SVG equivalent which explains my search for rendering options.
However, could it be that these are only files stored in the installation folder? In which case, I believe that creating a specific icon set for this platform with files in the expected format should work.
Does all this make sense? Any comments are most welcome.