2014-04-22 33 views
-2

爲了看到下面的代碼的影響,我需要一個圖像文件,驗證if測試;你可以給我不同的圖像IndexColorModel我需要一個圖像文件,驗證此測試「if(input.getColorModel()instanceof 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); 
} 
+0

如果您希望其他人閱讀它,請格式化您的代碼。 – dharms

回答

0

IndexColorModel通常由GIF或PNG格式與PLTE(調色板)塊創建的。帶調色板的BMP文件也可能起作用。

嘗試閱讀GIF文件,使用ImageIO.read(yourGIF),它應該出來一個IndexColorModel

另一種選擇是創建這樣一個空白圖像,如果你能與固定顏色映射生活:

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

不過,我想你的使用情況,這是簡單的使用只需要創建一個新的IndexColorModel預定義的查找表。您不需要從輸入圖像中獲取它。

相關問題