I need to convert a 32-bit PNG (RGB) to an 8-bit (indexed) version, with as little loss in quality as possible, although some is inevitable and accecptable. I've been able to pull this off by using ColorConvertOp to create a compatible destination image with the appropriate (default) IndexedColorSpace and SampleModel and just painting to it, but the dithering on this was terrible.
What I need to do is create my own palette for the destination image, then create the image itself. In the first part I (think) I've been successful, but I'm getting lost in precisely how to create the destination image and get the right data into it.
There are actually 11 types of people in the world: those who know binary, those who don't and those who still find this joke funny.