Java 我需要一个图像文件来验证这个测试;if(input.getColorModel()instanceof IndexColorModel)";

Java 我需要一个图像文件来验证这个测试;if(input.getColorModel()instanceof IndexColorModel)";,java,jai,Java,Jai,为了看到下面代码的影响,我需要一个验证if测试的图像文件;你能给我不同的IndexColorModel图像吗 System.out.println(input.getColorModel()); System.out.println("vvvvvv"); if (input.getColorModel() instanceof IndexColorModel) { System.out.println("eeeeeeeee"); // Retrieve the IndexCo

为了看到下面代码的影响,我需要一个验证if测试的图像文件;你能给我不同的
IndexColorModel
图像吗

System.out.println(input.getColorModel());
System.out.println("vvvvvv");

if (input.getColorModel() instanceof IndexColorModel) {
    System.out.println("eeeeeeeee");

    // Retrieve the IndexColorModel
    IndexColorModel icm = (IndexColorModel)input.getColorModel();

    // Cache the number of elements in each band of the colormap.
    int mapSize = icm.getMapSize();

    // Allocate an array for the lookup table data.
    System.out.println("eeeeeeeee");
    System.out.println(mapSize);
    byte[][] lutData = new byte[3][mapSize];

    // Load the lookup table data from the IndexColorModel.
    icm.getReds(lutData[0]);
    icm.getGreens(lutData[1]);
    icm.getBlues(lutData[2]);

    // Create the lookup table object.
    LookupTableJAI lut = new LookupTableJAI(lutData);

    // Replace the original image with the 3-band RGB image.
    input = JAI.create("lookup", input, lut);
}

IndexColorModel
通常是从带有PLTE(调色板)块的GIF或PNG创建的。带有调色板的BMP文件也可以工作

尝试使用
ImageIO.read(yourgf)
读取一个GIF文件,它应该会显示一个
IndexColorModel

如果您可以使用固定颜色贴图,另一个选项是创建如下空白图像:

input = new BufferedImage(1, 1, BufferedImage.TYPE_BYTE_INDEXED);

但我认为对于您的用例,使用预定义的查找表创建一个新的
IndexColorModel
更简单。您不需要从输入图像获取代码。

如果您希望其他人阅读代码,请格式化代码。