Java 从IndexColorModel获取索引?

Java 从IndexColorModel获取索引?,java,image,Java,Image,我有一个使用IndexColorModel的BuffereImage来显示一些使用调色板的图形数据。然后,我使用createGraphics()绘制缓冲区,并希望将这些数据转换回一个标记数组。但是,我能找到的所有方法都会得到RGB值,而不是实际的索引值。这似乎有点傻,因为虽然我可以迭代我的调色板并找到合适的颜色,但直接获取值要简单得多 如果您不能修改/重写createGraphics()方法(因为它属于没有源的外部JAR库),那么实际上您必须手动查找对象 否则,如果您可以访问createGrap

我有一个使用IndexColorModel的BuffereImage来显示一些使用调色板的图形数据。然后,我使用
createGraphics()
绘制缓冲区,并希望将这些数据转换回一个标记数组。但是,我能找到的所有方法都会得到RGB值,而不是实际的索引值。这似乎有点傻,因为虽然我可以迭代我的调色板并找到合适的颜色,但直接获取值要简单得多


如果您不能修改/重写
createGraphics()
方法(因为它属于没有源的外部JAR库),那么实际上您必须手动查找对象

否则,如果您可以访问
createGraphics()
源代码,则有两种选择:

  • 如果一些方法客户机需要索引作为返回对象,而其他客户机需要RGB值作为返回对象,那么您可以构建一个
    HashMap
    作为返回。整数是索引,RGB是对象本身或字符串等基本值

  • 如果您有效地找到了访问方法源代码的方法,并确认索引是流程所需的基本数据,只需返回一个整数=>索引,这样您就可以在O(1)处获取目标对象