У меня есть IndexColorModel и BufferedImage. Как мне BufferedImage конвертировать из RGB в IndexColor?
Короче, пошел по самому простому и очевидному пути. Создал еще один BufferedImage с IndexColor и просто через getRGB и setRGB перекинул из одного в другое:
Код: Выделить всё
BufferedImage data_in = ImageIO.read(new File("117477.jpg"));
IndexColorModel cm = new IndexColorModel(8, 0x37, palette[0], palette[1], palette[2]);
BufferedImage data_out = new BufferedImage(data_in.getWidth(), data_in.getHeight(), BufferedImage.TYPE_BYTE_INDEXED, cm);
for(int x=0; x<data_in.getWidth(); x++)
for(int y=0; y<data_in.getHeight(); y++)
data_out.setRGB(x, y, data_in.getRGB(x, y));
ImageIO.write(data_out, "png", new File("test.png"));